Разбор ZonedDateTime независимо от местного часового пояса - PullRequest
2 голосов
/ 02 марта 2020

Я пытаюсь проанализировать ZonedDateTime (или Instant) без необходимости go через LocalDate, на которую влияет местный часовой пояс.

Я хотел бы иметь возможность сделать что-то вроде:

val string = "2020-02-02T10:00:00"
val timeZone = ZoneId.of("Europe/Vienna")
val zoned = ZonedDateTime.parse(string, DateTimeFormatter.ISO_DATE_TIME, timeZone)

Однако подобного метода не существует - все методы требуют использования LocalDate, что, к сожалению, дает разные результаты при разных часовых поясах. Я хочу полностью игнорировать местный часовой пояс и иметь возможность создавать ZonedDateTime или Instant только из заданных параметров.

1 Ответ

4 голосов
/ 02 марта 2020

Входная строка, которую вы имеете, представляет собой только локальное время даты, поэтому сначала проанализируйте ее в LocalDateTime, а затем конвертируйте в ZoneDateTime в зоне, я бы не сказал Instant, потому что она всегда представляет момент в UT * 1006. *

ZonedDateTime dateTime = LocalDateTime.parse(string,DateTimeFormatter.ISO_LOCAL_DATE_TIME)
                                      .atZone(timeZone);
...