Java 8将给定的时间和时区转换为UTC时间
我有一个字符串类型就像一个计时:"2015-01-05 17:00"
和ZoneId
是"Australia/Sydney"
。
如何使用Java 8 datetime API将此时间信息转换为与UTC时间相对应的时间?
还需要考虑DST的东西。
回答:
您正在ZonedDateTime
Java8 中寻找类-带有时区的完整日期时间和与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