Я делаю заявку на Android в Android Studio с Java. Я работаю с датами и временем. Я пытаюсь создать отметку времени Unix из заданного момента времени. Например, следующий фрагмент кода
LocalDateTime aDateTime = LocalDateTime.of(2021, 4, 30, 8, 30);
ZoneId zoneId = ZoneId.systemDefault();
int x = Math.toIntExact(aDateTime.atZone(zoneId).toEpochSecond());
создает отметку времени Unix 1619760600. Однако, когда я ввожу это в любой онлайн-конвертер, он генерирует время 04/30/2021 @ 5:30am (UTC)
. Это на 3 hours
отличается от исходного введенного времени, которое является точной суммой в часах, в которой мой часовой пояс отличается от UTC00:00
.
. Кажется, проблема в моей неспособности понять часовые пояса в Java. Итак, мой вопрос: как правильно рассчитать часовой пояс, чтобы получить правильный UnixTimeStamp?