Метод java.util.Date toString()
отображает дату в локальном часовом поясе.
Существует несколько распространенных сценариев, в которых мы хотим, чтобы данные печатались в UTC, включая журналы, экспорт данных и связь с внешними программами.
- Какой лучший способ создать строковое представление
java.util.Date
в UTC? - Как заменить формат j.u.Dates
toString()
, который не сортируется (спасибо, @JonSkeet!) с лучшим форматом?
Добавление
Я думаю, что стандартный способ печати даты в пользовательском формате и часовом поясе довольно утомительно:
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"));