Я пытаюсь понять основную механику временных утилит.
Итак, я сделал следующий пример:
public class Test {
public static void main(String[] args) {
System.out.println(Instant.now().getEpochSecond());
System.out.println(new Date().getTime());
System.out.println(LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond());
System.out.println(LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
System.out.println(ZoneId.systemDefault().toString());
}
}
Выход:
1460651620
1460651620182
1460651620
1460662420
Europe/Helsinki
Мой текущий идентификатор зоны systemDefault: Европа/Хельсинки (+3 часа)
Когда мы создаем new Date()
, он имеет отметку времени unix (UTC).
Это моя отправная точка для сравнения печатных результатов.
1. В моем третьем System.out
у меня есть LocalDateTime с установленным часовым поясом systemDefault
, но вывод на самом деле такой же. Я ожидал большего значения (+3 часа).
2. В четвертой строке вывода у меня есть запутанный результат. Я ожидал такого же значения с new Date().getTime()
Нужна помощь, чтобы понять вывод.