将XMLGregorianCalendar转换为oracle timestamp值

时间:2013-09-17 06:57:12

标签: java oracle timestamp

我需要将XMLGregorianCalendar转换为Oracle Timestampformat

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

尝试使用Java执行查询。

1 个答案:

答案 0 :(得分: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&#34 ;,您可以通过传入毫秒来将其转换为java.sql.Timestamp。

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';