有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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”改成什么,以便能够读取我在欧洲/巴黎时区的日期时间


共 (1) 个答案

  1. # 1 楼答案

    更改输入以符合ISO 8601标准。是祖鲁语的缩写,意思是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所取代。时间课