Date to a string as a date format, retaining precision down to milliseconds.
The formatted string is by default in UTC and English locale. You can provide a different
TimeZone that are used for serialization or
null to use always the current TimeZone. Note, that
the default format uses 3-letter time zones that can be ambiguous and may cause wrong results at deserialization and
is localized since Java 6.
Using a Java 7 runtime or higher, the converter supports the datetime
format defined by W3C (a subset of ISO 8601) at deserialization. Only the formats that also contain the time
Dates in a different era are using a special default pattern that contains the era itself.