0

我需要将 XMLGregorianCalendar 转换为 Oracle Timestampformat

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

尝试使用 Java 执行查询。

4

1 回答 1

2

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

由于您需要格式与 OracleTO_TIMESTAMP()函数兼容的日期字符串,例如:“YYYY-MM-DD HH24:MI:SS.FF3”,您可以通过传入将其转换为 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'; 
于 2014-12-11T20:49:25.997 回答