Ser*_*gio 1 java java-time localdatetime
我有一个像这样的 UTC 日期时间(字符串):2022-11-22T17:15:00
还有一个像这样的 ZoneID:"America/Tijuana"
使用 java.time API,我想获取该区域的实际日期时间,即:(2022-11-22T09:15:00时间是 09:15 而不是 17:15)
2022-11-22T17:152022-11-22T17:15-08:00[America/Tijuana]以上都没有给我我正在寻找的东西。
这是我的代码:
ZoneId zonaID = ZoneId.of('America/Tijuana');
CharSequence dateUTC = "2022-11-22T17:15:00";
LocalDateTime dateTimeL = LocalDateTime.parse(dateUTC);
ZonedDateTime myZDT = ZonedDateTime.now();
ZonedDateTime myZDTFinal = myZDT.of(dateTimeL, zonaID);
System.out.println("using toLocalDateTime: " + myZDTFinal.toLocalDateTime());
System.out.println("using toString: " + myZDTFinal.toString());
Run Code Online (Sandbox Code Playgroud)
我知道这可能是一个重复的问题,但有很多关于日期时间的问题,我只是无法弄清楚这一点。
任何帮助将不胜感激。
withZoneSameInstant您必须将日期转换为 UTC,然后使用以下命令将此区域转换为您期望的区域:
ZonedDateTime toUTCZone = ZonedDateTime.of(dateTimeL, ZoneOffset.UTC);
ZonedDateTime myZDTFinal = toUTCZone.withZoneSameInstant(zonaID);
Run Code Online (Sandbox Code Playgroud)
输出
2022-11-22T09:15-08:00[America/Tijuana]
Run Code Online (Sandbox Code Playgroud)