Konwertuj datę Java na ciąg UTC
Thejava.util.Date toString()
metoda wyświetla datę w lokalnej strefie czasowej.
Istnieje kilka typowych scenariuszy, w których chcemy wydrukować daneUTC, w tym dzienniki, eksport danych i komunikacja z programami zewnętrznymi.
Jaki jest najlepszy sposób na utworzenie reprezentacji ciągujava.util.Date
w UTC?Jak zastąpić j.u.DatetoString()
format, który nie jest sortowalny (dzięki, @JonSkeet!) w lepszym formacie?UzupełnienieMyślę, że standardowy sposób drukowania daty w niestandardowym formacie i strefie czasowej jest dość nużący:
final Date date = new Date();
final String ISO_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS zzz";
final SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
final TimeZone utc = TimeZone.getTimeZone("UTC");
sdf.setTimeZone(utc);
System.out.println(sdf.format(date));
Szukałem takiego liniowca:
System.out.println(prettyPrint(date, "yyyy-MM-dd'T'HH:mm:ss.SSS zzz", "UTC"));