[英]How to convert java.time.ZonedDateTime to XMLGregorianCalendar?
[英]How to use java.time.ZonedDateTime & format.DateTimeFormatter without GMT?
执行以下操作:
val zonedFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm z")
ZonedDateTime.from(zonedFormatter.parse("31.07.2020 14:15 GMT"))
给我:
"displayDate": "2020-07-31T14:15:00Z[GMT]"
我想要没有 [GMT]:
"displayDate": "2020-07-31T14:15:00Z"
您可以使用DateTimeFormatter.ISO_OFFSET_DATE_TIME
来格式化解析的ZonedDateTime
。 但是,如果您希望日期时间始终为 UTC,我建议您将解析后的ZonedDateTime
转换为Instant
。
演示:
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("dd.MM.uuuu HH:mm z", Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.from(dtfInput.parse("31.07.2020 14:15 GMT"));
System.out.println(zdt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
System.out.println(zdt.toInstant());
}
}
输出:
2020-07-31T14:15:00Z
2020-07-31T14:15:00Z
从Trail: Date Time 中了解有关现代日期时间 API * 的更多信息。 检查此答案和此答案以了解如何将java.time
API 与 JDBC 结合使用。
* 如果您正在为 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 通过 desugaring 可用的 Java 8+ API 。 请注意,Android 8.0 Oreo 已提供对java.time
支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.