【发布时间】:2021-01-13 05:00:17
【问题描述】:
有没有办法从 oracle 获取时区 id 而不是时区偏移量?
当我执行SELECT SYSTIMESTAMP AS TIMEZONE FROM DUAL; 时,返回的结果是13-JAN-21 10.19.52.936031000 AM +05:30。
当我使用 rs.getObject( "TIMEZONE ", ZonedDateTime.class ) 从 Java 中检索它时,ZonedDateTime 对象将 offset 和 zoneID 都设置为 +05:30。
但我希望看到的是,SELECT SYSTIMESTAMP AS TIMEZONE FROM DUAL; 应该返回 04-JAN-21 02.40.50.000000000 PM ASIA/COLOMBO 并且查询的 Java ZonedDateTime 应该将 offset 设置为 +05:30 并将 zoneID 设置为 Asia/Colombo。
有没有办法在 DB 级别或 Java 级别进行设置?当前DBTIMEZONE 设置为+05:30。
【问题讨论】:
-
您需要正确设置Java时区,例如带有环境变量
JAVA_TOOL_OPTIONS=-Duser.timezone=Asia/Colombo