Вы смешав хлопотно старые классы наследства даты и время (Calendar
) с современными классами java.time (LocalDateTime
). Не надо. Придерживайтесь только классов java.time.
A LocalDateTime
не имеет информации о часовом поясе, то есть ее целях. Таким образом, это не представляют момент на шкале времени. И это бесполезно для цели вашего Вопроса.
Вы сказали, что имеете заданное смещение от UTC. Итак, вы хотите OffsetDateTime
с ZoneOffset
.
Instant instant = Instant.now(); // Current moment in UTC.
ZoneOffset offset = ZoneOffset.ofHoursMinutes(5 , 30);
OffsetDateTime odt = OffsetDateTime.atOffset(offset);
Как ярлык, вы можете пропустить получение Instant
.
OffsetDateTime odt = OffsetDateTime.now(offset);
Аномалии, такие как переход на летнее время, не могут обрабатываться простым смещением от UTC. Для этого вам нужен часовой пояс. Зона представляет собой смещение плюс набор правил для обработки этих аномалий, прошлых и настоящих. Используйте ZoneId
, чтобы получить ZonedDateTime
. Поиск переполнения стека для многих сообщений.
Я понятия не имею, что означает «Кодекс штата» в вашем Вопросе. Если вы имеете в виду государство или провинцию внутри страны, то не карту в часовой пояс непосредственно во всех случаях, поэтому это бесполезно.
Пожалуйста, найдите и изучите переполнение стека перед публикацией. Эти вопросы были рассмотрены уже много раз.
Какая у вас проблема и где ваш код? –
@ScaryWombat Обновлен фрагмент кода. – Priya