Eek, this is evil. You have an object method that is a constructor, but the constructed object really has nothing to do with the object on which you call the constructor. How is this better than just calling parse_datetime on the relevant DT::Format class or object?
I note that you didn't write any tests for it. Maybe some part of you secretly rebelled against its evilness.
Oh oops, now that you mention it..
No evilness involved there. Just thought that if you have a formatter that can format and parse, you might as well do both. I can surely live without having that method.
Is the rest ok?
--d