繁体   English   中英

java中的日期和时区

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM