我需要将 XMLGregorianCalendar 转换为 Oracle Timestampformat
我的数据库数据类型是时间戳格式。
尝试使用 Java 执行查询。
默认情况下,该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';