gpt4 book ai didi

Java - 转换符合 xs :date format into Oracle timestamp format 的字符串

转载 作者:行者123 更新时间:2023-12-04 06:17:55 24 4
gpt4 key购买 nike

您好,感谢您的阅读。

我目前面临着将表示 xs:date 格式的日期/时间的字符串转换为 Oracle 时间戳的挑战。

我开始的字符串看起来像 - “2011-07-12T16:20:02-04:00”

我需要将时区偏移量包含在我的 Oracle 时间戳中。转换过程发生后,我应该得到一个时间戳,看起来像 -

“2011-07-12 12:20:02.0000”

请注意,在上面的示例中,时区偏移量已被计入时间戳。

有谁知道如何做到这一点?我尝试使用 SimpleDateFormat 对象首先从字符串创建 java.util.Date 对象,然后将其转换为 java.sql.Timestamp 对象。这里的问题是时区没有考虑在内,我认为 java.util.Date 对象无论如何都会忽略时区偏移量。

希望有人可以帮助我在这里...

编辑:已解决-这是我最终使用的代码-

Calendar Cal = DatatypeConverter.parseDateTime("2011-07-12T16:20:02+02:00");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(Cal.getTime()));

再次感谢阅读,

扎卡里·卡特

最佳答案

DateFormats 有时区。你基本上需要配置一个 SimpleDateFormat使用正确的格式来解析输入时间戳(见下面的注释)。从技术上讲,它包含时区信息,因此您在输入格式化程序上配置的时区无关紧要(为了安全起见,您可以使用“GMT”)。然后,您似乎想使用 GMT 时区(例如,无时区偏移)输出时间戳,因此您可以使用所需的输出格式创建另一个 SimpleDateFormat,并配置为“GMT”时区。

SimpleDateFormat 可能无法处理 xsd 输入格式,因此您可以使用 jaxb 工具为您处理,请参阅:http://download.oracle.com/javase/6/docs/api/javax/xml/bind/DatatypeConverter.html#parseDateTime(java.lang.String )

关于Java - 转换符合 xs :date format into Oracle timestamp format 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998978/

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