worth making this a public static util method somewhere, i think, for testability and possible re-use.  either in the rest projects.  or perhaps in `broolyn.util.time.Time.parseDateString(String)` ... not very functional yet i don't think but it might benefit from future enhancements if it is put there (cf `Time.parseTimeString(String)`).

i'd rather the method not be called `Safely` as it throws in some cases (which I'd expect, normally, but if it's called `Safe` i'd think it doesn't.).