gpt4 book ai didi

java - 如何在 Java 中检索预期时区中的 oracle Timestamp 列?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:34 25 4
gpt4 key购买 nike

我在 oracle 表中有一个时间戳列。在存储时间时,我将其存储在本列中的 UTC 中。为了检索此时间戳,我使用了 Spring 的 JdbcTemplate,同时返回了 TimeStamp 类型的对象。

我想获取当前时区格式为“dd-MM-YYYY HH:mm:ss”的日期时间字符串。为了实现这一点,我正在尝试以下代码:

new LocalDateTime(<retrieved TimeStamp>, <current user DateTimeZone>).toString("yyyy-MM-dd HH:mm:ss")

Joda 库中的 LocalDateTime 和 DateTimeZone。

这怎么没有按预期工作。上面的代码没有提供当前用户的时区,而是仅以 UTC 格式提供了日期时间字符串。

我错过了什么?

最佳答案

我认为您的应用程序正在使用没有时区信息的 java.util.DatetoString 用法在创建字符串时应用 JVM 当前的默认时区。

您可以通过 ( Using Joda Library ) 调整时区瞬间

ZonedDateTime Tokyo = ZonedDateTime.ofInstant (instant,zoneIdTokyo) ;

或实现区域

DateTimeZone zone = DateTimeZone.forID("Asia/Tokyo");

您正在使用LocalDateTime 是表示本地日期和时间(无时区)

的不可变类

编辑 - 你可以试试这个(我没有测试过)

DateTime udate = new DateTime("2016-05-01T20:10:04", DateTimeZone.UTC);
System.out.println(udate);
DateTime zone = udate.plusMillis(10000)
.withZone(DateTimeZone.forID("Asia/Kolkata"));
System.out.println(zone);

关于java - 如何在 Java 中检索预期时区中的 oracle Timestamp 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37874331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com