Конвертировать дату Java в строку UTC
java.util.Date toString()
Метод отображает дату в местном часовом поясе.
Существует несколько распространенных сценариев, в которых мы хотим, чтобы данные печатались вуниверсальное глобальное времяВ том числе журналы, экспорт данных и связи с внешними программами.
What's the best way to create a String representation ofjava.util.Date
in UTC?
How to replace the j.u.Date’s toString()
format, which isn't sortable (thanks, @JonSkeet!) with a better format?
Addendum
Я думаю, что стандартный способ печати даты в произвольном формате и часовом поясе довольно утомителен:
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));
Я искал однострочник, как:
System.out.println(prettyPrint(date, "yyyy-MM-dd'T'HH:mm:ss.SSS zzz", "UTC"));