jsonb默认用于Java api的各种日期对象的日期/时间格式是什么?
例如,javascript的new Date().toJSON()
产生的输出包含我希望使用Jsonb解析到ZonedDateTime
字段的第二个分数,但是默认的序列化程序不支持第二个分数。
我必须指定自定义格式来映射javascript Date
吗?
答案 0 :(得分:0)
Jsonb spec指定了3.5日期:
中应支持的默认映射实现。实现必须支持以下标准Java日期/时间类的绑定:
- java.util.Date
- java.util.Calendar
- java.util.GregorianCalendar
- java.util.TimeZone
- java.util.SimpleTimeZone
- java.time.Instant
- java.time.Duration
- java.time.Period
- java.time.LocalDate
- java.time.LocalTime
- java.time.LocalDateTime
- java.time.ZonedDateTime
- java.time.ZoneId
- java.time.ZoneOffset
- java.time.OffsetDateTime
- java.time.OffsetTime
javaindeed article列出了用于它们的各种格式化程序以及示例输出:
{
"date": "2016-07-27T23:07:41",
"calendar": "2016-07-27T23:07:41.782+02:00[Europe/Copenhagen]",
"gregorianCalendar": "2016-07-27T23:07:41.801+02:00[Europe/Copenhagen]",
"timeZone": "Europe/Copenhagen",
"simpleTimeZone": "Europe/Paris",
"instant": "2016-07-27T21:07:41.806Z",
"duration": "PT96H",
"period": "P3M",
"localDate": "2016-07-27",
"localTime": "23:07:41.807",
"localDateTime": "2016-07-27T23:07:41.807",
"zonedDateTime": "2016-07-27T23:07:41.807+02:00[Europe/Copenhagen]",
"zoneId": "Europe/Copenhagen",
"zoneOffset": "+03:30",
"offsetDateTime": "2016-07-27T23:07:41.807+02:00",
"offsetTime": "23:07:41.807+02:00",
}
在我的情况下,将从JavaScript的java.time.Instant
输出字符串中正确反序列化一个Date.toJSON()
实例。