Java 8将给定的时间和时区转换为UTC时间

我有一个字符串类型就像一个计时:"2015-01-05 17:00"ZoneId"Australia/Sydney"

如何使用Java 8 datetime API将此时间信息转换为与UTC时间相对应的时间?

还需要考虑DST的东西。

回答:

您正在ZonedDateTimeJava8 中寻找类-带有时区的完整日期时间和与UTC /格林威治标准时间的偏移量。就设计而言,此类应主要视为a

LocalDateTime和a

的组合ZoneId。的ZoneOffset是一个至关重要的,但次要的,一条信息,用于确保所述类表示瞬间,特别是在夏令重叠。

例如:

ZoneId australia = ZoneId.of("Australia/Sydney");

String str = "2015-01-05 17:00";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");

LocalDateTime localtDateAndTime = LocalDateTime.parse(str, formatter);

ZonedDateTime dateAndTimeInSydney = ZonedDateTime.of(localtDateAndTime, australia );

System.out.println("Current date and time in a particular timezone : " + dateAndTimeInSydney);

ZonedDateTime utcDate = dateAndTimeInSydney.withZoneSameInstant(ZoneOffset.UTC);

System.out.println("Current date and time in UTC : " + utcDate);

以上是 Java 8将给定的时间和时区转换为UTC时间 的全部内容, 来源链接: utcz.com/qa/397945.html

回到顶部