[英]Dates and Timezones in java
我目前正在读取 JSON 格式的日期,如下所示:
"dates": {
"startdate": "2017-08-29T22:00:00.000UTC";
}
在我的应用程序中,我将 JsonFormat 设置如下,以便能够正确读取它:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'UTC'")
private Date startdate;
但是 UTC 不是我想要使用的时区,我应该如何将“UTC”更改为能够在欧洲/巴黎区域读取我的日期时间?
更改输入以符合 ISO 8601 标准。 Z
是 Zulu 的缩写,意思是 UTC。
String input = "2017-08-29T22:00:00.000UTC".replace( "UTC" , "Z" ) ;
解析为Instant
对象。
Instant instant = Instant.parse( input ) ;
调整到您想要的时区。
ZoneId z = ZoneId.of( "Europe/Paris" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
避免使用Date
类,因为那个麻烦的类现在是遗留的,被 java.time 类取代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.