Currently the toDate() and format() functions under the hood use a SimpleDateFormat with the current system timezone. This leads to hard to locate data inconsistency errors when parsing and then generating date strings when the date strings are not in the same or current time zone.
Even the example given in the documentation
will give an incorrect output when the system timezone is not set to GMT.
suggestion is to add a variant to toDate(String tz) and format(String tz) which accepts a timezone of Java nomenclature which can be set with "SimpleDateFormat.setTimeZone(TimeZone.getTimeZone(tz))"