Java 7 DateFormat для разбора даты UTC на локальную дату - PullRequest
0 голосов
/ 18 июня 2019

Не могли бы вы сообщить мне, какой должен быть формат даты JDK 7, чтобы проанализировать дату 2019-06-18T19: 04: 30.515 UTC и изменить ее на местное время?

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

java.time

Для Java 6 & 7 вы можете использовать проект ThreeTen-Backport , чтобы перенести большинство современных java.time функциональность для Java 6 и Java 7. Это означает, что вы можете избежать использования ужасных устаревших классов даты и времени, таких как SimpleDateFormat (заменен DateTimeFormatter).

парсинг даты 2019-06-18T19: 04: 30.515 UTC

Сначала мы манипулируем вашей входной строкой для полного соответствия ISO 8601 .Мы заменим этот пробел и «UTC» на Z, произносится «Зулу».

String input = "2019-06-18T19:04:30.515 UTC".replace( " UTC" , "Z" ) ;
Instant instant = Instant.parse( input ) ;

и изменим его на местное время?

Чтобы настроитьв другой часовой пояс от UTC, примените ZoneId, чтобы получить ZonedDateTime.

ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;  // Or "Europe/Berlin" etc. 
ZonedDateTime zdt = instant.atZone( z ) ;

Чтобы создать строку, представляющую значение даты и времени, локализованное для человеческого языка и культурных норм пользователя, используйте DateTimeFormatter.ofLocalizedDateTime.

1 голос
/ 18 июня 2019

Здесь вы можете найти интересную статью на эту тему:

https://en.wikipedia.org/wiki/Coordinated_Universal_Time

Объяснение паттернов можно найти здесь:

https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#timezone

Это заставляет меня предложить «гггг-ММ-дд'ТХЧ: мм: сс.ССС z» в качестве шаблона.Я надеюсь, что это поможет вам.

...