На самом деле оба результата верны, просто вы неправильно понимаете, что происходит:
В первом операторе, где вы используете дату, вы определяете час, мин, сек как 0
.
Вместо ZoneDateTime
вы используете now()
, что даст вам текущее время даты
Чтобы получить то же время, я думаю, вам нужно:
ZonedDateTime zonedDateTime = ZonedDateTime.of(LocalDate.now(),
LocalTime.of(0,0,0),
ZoneOffset.UTC);
Long zdtm = zonedDateTime.toInstant().toEpochMilli();
Теперь оба подхода возвращаются:
1573171200000
1573171200000
Идеальная демонстрация