Instant.parse
Шаблон форматирования не требуется.
Instant.parse( "2019-11-26T19:30:00Z" )
Ваш формат ввода соответствует стандарту ISO 8601 . Этот конкретный формат имеет Z
в конце. Эта буква означает UTC (смещение , равное нулю часов-минут-секунд) и произносится как «зулу».
Класс Instant
в java.time представляет момент в UTC, всегда UTC.
Использование класса ZonedDateTime
для этого ввода не является наиболее подходящим. У нас есть:
Instant
для значений, которые всегда в UTC. OffsetDateTime
для моментов, когда известно только смещение от UTC, но не часовой пояс. Используйте этот класс и для значений UTC, когда вам нужна большая гибкость, например, для генерации строк в различных форматах. `instant.atOffset ( ZonedDateTime
для значений в часовом поясе. Часовой пояс - это история прошлых, настоящих и будущих изменений смещения, используемого людьмиопределенного региона.
Чтобы просмотреть тот же момент, скорректированный с учетом смещения, используемого людьми определенного региона (часового пояса),примените ZoneId
, чтобы получить ZonedDateTime
объект.
Instant instant = Instant.parse( "2019-11-26T19:30:00Z" ) ; // Default format for parsing a moment in UTC.
ZoneId z = ZoneId.of( "America/Edmonton" ) ; // A time zone is a history of past, present, and future changes to the offset used by the people of a particular region.
ZonedDateTime zdt = instant.atZone( z ) ; // Same moment, same point on the timeline, different wall-clock time.
Посмотрите этот код, запущенный в режиме реального времени на IdeOne.com .
instant.toString(): 2019-11-26T19: 30: 00Z
zdt.toString (): 2019-11-26T12: 30-07: 00 [Америка / Эдмонтон]