короткое имя часового пояса dateTimeFormatter не возвращается - PullRequest
3 голосов
/ 22 января 2020

Короткое имя часового пояса не возвращается для приведенного ниже кода в java8, вместо этого оно возвращает «-08: 00»

ZonedDateTime dateTime1 = ZonedDateTime.parse("2020-01-22T08:07:59.179-08:00");
ZoneId.of("America/Los_Angeles");
System.out.println(dateTime1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS z")));

, это выдает: 2020-01-22 08: 07: 59.179 -08 : 00

Пожалуйста, дайте знать, какой формат ввода будет производить "2020-01-22 08: 07: 59.179 PST"

1 Ответ

6 голосов
/ 22 января 2020

Возможно, вам понадобится добавить zoneId к вашей дате:

import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class StackOverflowTest {
  public static void main(String[] args){

    ZonedDateTime dateTime1 =
       ZonedDateTime.parse("2020-01-22T08:07:59.179-08:00")
      .withZoneSameInstant(ZoneId.of("America/Los_Angeles"));

    ZonedDateTime dateTime2 = // I'm at CET
       ZonedDateTime.parse("2020-01-22T08:07:59.179+01:00")
      .withZoneSameInstant(ZoneId.of("Europe/Berlin"));

    System.out.println(dateTime1.format(DateTimeFormatter
                                       .ofPattern("yyyy-MM-dd HH:mm:ss.SSS z")));
    System.out.println(dateTime2.format(DateTimeFormatter
                                       .ofPattern("yyyy-MM-dd HH:mm:ss.SSS z")));

/* prints
2020-01-22 08:07:59.179 GMT-08:00
2020-01-22 08:07:59.179 CET
*/
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...