【问题标题】:Convert XMLGregorianCalendar to oracle timestamp value将 XMLGregorianCalendar 转换为 oracle 时间戳值
【发布时间】:2013-09-17 06:57:12
【问题描述】:

我需要将 XMLGregorianCalendar 转换为 Oracle Timestampformat

我的数据库数据类型是时间戳格式。

尝试使用 Java 执行查询。

【问题讨论】:

  • 你尝试自己解决这个问题吗?
  • 很难理解您的问题,您的意思是您需要在 java 程序中将XMLGregorianCalendar 转换为Timestamp,以便将其插入到oracle数据库表?
  • Yes,Exactly.Type 从 XMLGregorianCalendar 转换为 Timestamp

标签: java oracle timestamp


【解决方案1】:

XMLGregorianCalendar#toString()方法默认返回ISO 8601格式“YYYY-MM-DDThh:mm:ssTZD”的日期字符串,例如:“2014-12-10T12:49:28-08:00”, 'T' 是时间的分隔符。一种快捷方式是将“T”替换为空格,但我认为这不是更好的选择。

由于您需要格式与 Oracle 的 TO_TIMESTAMP() 函数兼容的日期字符串,例如:“YYYY-MM-DD HH24:MI:SS.FF3”,您可以将其转换为 java.sql .时间戳,以毫秒为单位。

XMLGregorianCalendar now = new XMLGregorianCalendar();
GregorianCalendar calenderNow = now.toGregorianCalendar();
Timestamp createOnTimestamp = new Timestamp(calenderNow.getTimeInMillis()));

如果您需要将时间戳作为格式化字符串传递给准备好的语句,您可以这样做:

String createdOnString = createOnTimestamp.toString(); 
//returns yyyy-MM-dd HH:mm:ss.SSS 

或者,如果您有想要使用的特定格式:

String createdOnString = new SimpleDateFormat("yourformat").format(createOnTimestamp);

*注意:您可以通过运行以下查询来查看 Oracle 的默认时间戳格式:

SELECT value FROM v$nls_parameters WHERE parameter = 'NLS_TIMESTAMP_FORMAT'; 

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 2014-05-06
    • 1970-01-01
    • 2015-10-07
    • 2021-06-21
    • 2012-08-19
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多