Vit*_*lii 15 java timezone datetime-conversion java-8 zoneddatetime
我有一个ZonedDateTime像这样构造的对象
ZonedDateTime z = ZonedDateTime.of(LocalDate.now().atTime(11, 30), ZoneOffset.UTC);
Run Code Online (Sandbox Code Playgroud)
我如何将其转换LocalDateTime为瑞士时区?预期结果应该是16 april 2018 13:30.
Jon*_*eet 33
如何在瑞士时区将其转换为LocalDateTime?
您可以将UTC ZonedDateTime转换为ZonedDateTime具有瑞士时区的UTC ,但保持同一时刻,然后在LocalDateTime需要时将其转出.我很想把它作为一个,ZonedDateTime除非你因为LocalDateTime其他原因需要它.
ZonedDateTime utcZoned = ZonedDateTime.of(LocalDate.now().atTime(11, 30), ZoneOffset.UTC);
ZoneId swissZone = ZoneId.of("Europe/Zurich");
ZonedDateTime swissZoned = utcZoned.withZoneSameInstant(swissZone);
LocalDateTime swissLocal = swissZoned.toLocalDateTime();
Run Code Online (Sandbox Code Playgroud)
Ste*_*ers 14
它有助于理解 LocalDateTime 和 ZonedDateTime 之间的区别。你真正想要的是一个ZonedDateTime. 如果您想从字符串表示中删除时区,您可以将其转换为LocalDateTime.
你要找的是:
ZonedDateTime swissZonedDateTime = withZoneSameInstant(ZoneId.of("Europe/Zurich"));
LocalDateTime - 这基本上是 a Dateand的美化字符串表示Time;它是时区不可知的,这意味着它不代表时间线上的任何时间点
Instant - 这是自 EPOCH 以来经过的时间的毫秒表示。这代表时间线上的特定时刻
ZonedDateTime -这也代表了一个时间表的时间瞬间,但它代表了它作为一个Date和Time一个TimeZone。
下面的代码说明了如何使用所有 3。
LocalDateTime localDateTime = LocalDateTime.of(2018, 10, 25, 12, 00, 00); //October 25th at 12:00pm
ZonedDateTime zonedDateTimeInUTC = localDateTime.atZone(ZoneId.of("UTC"));
ZonedDateTime zonedDateTimeInEST = zonedDateTimeInUTC.withZoneSameInstant(ZoneId.of("America/New_York"));
System.out.println(localDateTime.toString()); // 018-10-25T12:00
System.out.println(zonedDateTimeInUTC.toString()); // 2018-10-25T12:00Z[UTC]
System.out.println(zonedDateTimeInEST.toString()); // 2018-10-25T08:00-04:00[America/New_York]
Run Code Online (Sandbox Code Playgroud)
如果您要比较上面Instant两者的值ZonedDateTimes,它们将是等效的,因为它们都指向同一时刻。在格林威治的某个地方(UTC 时区),现在是 10 月 25 日中午;同时,在纽约,时间是上午 8 点(美国/纽约时区)。
试试这个。用您的时区替换美国/中部。
ZonedDateTime z = ZonedDateTime.of(LocalDate.now().atTime(11, 30), ZoneOffset.UTC);
System.out.println(z.withZoneSameInstant(ZoneId.of("US/Central")));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18838 次 |
| 最近记录: |