jOOQ:使用TIME ZONE解析Oracle TIMESTAMP时出错

时间:2016-08-12 03:16:57

标签: java oracle jooq

我遇到了将Oracle(11.2.0.4.0)TIMESTAMP(6) WITH TIME ZONE值解析为OffsetDateTime的问题:

java.time.format.DateTimeParseException: Text '2014-03-28T15:11:49.508918 -4:00' could not be parsed at index 26
    java.time.format.DateTimeFormatter.parseResolved0(Unknown Source)
    java.time.format.DateTimeFormatter.parse(Unknown Source)
    java.time.OffsetDateTime.parse(Unknown Source)
    java.time.OffsetDateTime.parse(Unknown Source)
    org.jooq.impl.DefaultBinding.offsetDateTime(DefaultBinding.java:1539)

我认为这是此处描述的问题:https://github.com/jOOQ/jOOQ/issues/4965

Oracle生成的not-iso-iso8601值(2014-03-28T15:11:49.508918 -4:00)实际上有两个被OffsetDateTime.parse拒绝的问题:

  • 一位数小时(根据#4965)
  • 偏移前的空格

是否有解决方法,直到修复程序到达(在3.9中)?

1 个答案:

答案 0 :(得分:2)

jOOQ版本3.8尚未完全支持TIMESTAMP WITH TIME ZONE数据类型(将映射到Java 8的JSR 310类型)。目前,您必须通过数据类型绑定实现自己的支持,如手册中所述: