【发布时间】:2022-01-06 18:51:36
【问题描述】:
我有 createdAt 的 json 架构
{
"title": "details",
"definitions": {
"dateTime": {
"type": "string",
"format": "date-time"
},
"properties" : {
"createdAt": { "$ref": "#/definitions/dateTime" }
}
}
当我尝试创建对象时
Details details = ImmutableDetails.builder()
.createdAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
.parse("2021-11-30T00:22:11.454Z"))
.build();
我得到的错误是
createDate: [Nov 30, 2021, 0:22:11 AM] is not a valid date-time.
Expected [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,9}Z,
yyyy-MM-dd'T'HH:mm:ss[+-]HH:mm, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,9}[+-]HH:mm]
如何指定我的 JSON 架构以接受 java.util.Date 对象?
【问题讨论】:
-
请尝试 new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ") 而不是 new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss .SSS'Z'")。 JSON 模式不喜欢日期时间结束时的 Z
-
我无法使用
yyyy-MM-dd'T'HH:mm:ss.SSSZ格式解析2021-11-30T00:22:11.454Z -
我建议你不要使用
SimpleDateFormat。这个类是出了名的麻烦和过时。我不知道该怎么做,因为我不知道您的ImmutableDetails及其生成器。但是请查看java.time, the modern Java date and time API。
标签: java json date jsonschema jsonschema2pojo