java - java日期对象默认的Jsonb序列化格式是什么

标签 java date jsonb

jsonb 默认为 java api 的各种日期对象使用什么日期/时间格式?

例如,javascript 的 new Date().toJSON() 生成的输出包含我希望使用 Jsonb 解析到 ZonedDateTime 字段的第二个分数,但第二个分数是默认序列化器不支持。

我是否必须指定自定义格式来映射 javascript Date

最佳答案

Jsonb spec指定第 3.5 节中应支持的默认映射实现日期:

Implementations MUST support binding of the following standard Java date/time classes:

  • 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",
}

就我而言,java.time.Instant 实例将从 javascript 的 Date.toJSON() 输出字符串中正确反序列化。

关于java - java日期对象默认的Jsonb序列化格式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60563836/

相关文章:

date - lua 程序显示当前时间

java - 用于检查 YYYY-MM-DD 日期的 JSON 模式

java - 字符串到日期的转换正在浪费时间

postgresql - 嵌套整数字段上的 Postgres jsonb 索引

PostgreSQL 比较两个 jsonb 对象

sql - Postgres JSONB : query by negative numbers

java - 从 sts/eclipse 中调用不同语言的编译器

java - 是否可以将分区添加到 Kafka 0.8.2 中的现有主题

java - POI HSSFCell 类的 getRichStringCellValue() 和 getStringCellValue() 方法有什么区别?

java - Websphere 内存不足异常