【发布时间】:2021-07-19 04:58:37
【问题描述】:
我正在尝试将此日期转换为本地日期
Input: "2021-04-20T15:00:00+02:00";
Expected output: "2021-04-20T13:00:00Z";
Actual output : "2021-04-20T15:00:00
您能告诉我要使用哪个库吗?
代码:
String date = "2021-04-20T15:00:00+02:00";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ");
LocalDateTime dt = LocalDateTime.parse(date, formatter);
System.out.println(dt.toString());
【问题讨论】:
-
虽然官方的 Joda-Time 建议是切换到 java.time 作为答案,但在亚洲/卡塔尔时区运行时,使用 Joda-Time
DateTime.parse(date).withZone(DateTimeZone.getDefault())会产生2021-04-20T16:00:00.000+03:00。那是你当地时间吗?是什么让您期待2021-04-20T13:00:00Z? -
which library:你是指 Joda-Time 库中的哪个库类(
DateTime、LocalDateTIme、Instant)还是哪个库而不是 Joda-时间(java.time/JSR-310,Time4J)?后一个问题对于 Stack Overflow 来说是题外话。前者是主题。
标签: java-8 jodatime reactive-mongo-java