首先,OffsetDateTime
对于您的情况,您使用了错误的类。既然你提到了timezone="UTC"
,你应该使用ZonedDateTime
. 请注意,使用以下注释后,生成的日期时间将类似于2020-03-07T04:11:20.000 UTC
.
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS z", timezone="UTC")
ZonedDateTime
您可以使用该模式解析为yyyy-MM-dd'T'HH:mm:ss.SSS z
.
演示:
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String myPattern = "yyyy-MM-dd'T'HH:mm:ss.SSS z";
String myText = "2020-03-07T04:11:20.000 UTC";
System.out.println(ZonedDateTime.parse(myText, DateTimeFormatter.ofPattern(myPattern)));
}
}
输出:
2020-03-07T04:11:20Z[UTC]
如果要保持日期时间格式,2020-03-07T04:11:20.000
则应timezone="UTC"
从注释中删除并将获得的日期时间字符串解析为 aLocalDateTime
而不是ZonedDateTime
. 不用说,模式应该是yyyy-MM-dd'T'HH:mm:ss.SSS
在那种情况下。