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łnienie

Myś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"));

questionAnswers(7)

yourAnswerToTheQuestion