【问题标题】:jOOQ: Error parsing Oracle TIMESTAMP WITH TIME ZONEjOOQ:使用时区解析 Oracle TIMESTAMP 时出错
【发布时间】:2016-12-18 22:59:00
【问题描述】:

我在将 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 (2014-03-28T15:11:49.508918 -4:00) 产生的 not-quite-iso8601 值实际上有两个问题被OffsetDateTime.parse 拒绝:

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

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

【问题讨论】:

    标签: java oracle jooq


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-06
      • 2017-07-27
      • 2012-12-17
      • 2011-07-26
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      相关资源
      最近更新 更多