Обе даты представляют один и тот же момент времени:
- 1985-09-17T01: 00: 00.000 + 0400
- 1985-09-16T21: 00: 00Z
Когда вы печатаете даты в java, он использует текущий часовой пояс виртуальной машины, но внутри класса Date
эта информация хранится в long
, представляющем время в миллисекундах с начала эпохи.
Есливам нравится, что вы можете получить строковое представление даты, используя пользовательский часовой пояс, используя setTimeZone
метод DateFormat
:
Устанавливает часовой пояс для календаряэтот объект DateFormat.
Вот простой фрагмент кода:
Date date = ...
DateFormat formatter = ...
TimeZone timeZone = ...
// Set a custom timezone
formatter.setTimeZone(timeZone);
// Get a string representation of the daet with a custom timezone
String formattedDateWithCustomTimezone = formatter.format(date);