【发布时间】:2019-03-12 18:17:41
【问题描述】:
我在以 UTC 存储的 Oracle 数据库列中有时间戳值。我想通过 spring 的 jdbcTemplate 读取它并将其转换为 joda DateTime 对象而不进行任何时区转换,即按原样读取它而不转换或丢失时区。
例如如果输入时间戳为2019-03-08 15:07:37.232,我希望拥有值为2019-03-08T15:07:37.232Z 的DateTime 对象
我怎样才能做到这一点?
请注意此代码 - new DateTime(timestamp.getTime(), DateTimeZone.UTC)) 没有帮助,因为它假定输入时间戳位于本地时区并将其重新转换为 UTC。对于上面的输入是2019-03-08 15:07:37.232,结果是2019-03-08T09:37:37.232Z
谢谢。
【问题讨论】:
-
据我了解,如果你知道数据库时间戳是UTC,但Oracle不知道(它不是
timestamp with time zone),你的2019-03-08 15:07:37.232时间戳将是在您的时区中错误地检索为该日期和时间,因此您需要将其转换回 UTC。不过,Oracle 和 Spring 的 jdbcTemplate 并不是我的家乡。
标签: spring datetime jodatime spring-jdbc