0

XMLGregorianCalendar を Oracle Timestampformat に変換する必要があります

私のデータベースのデータ型は Timestamp 形式です。

Java を使用してクエリを実行しようとしています。

4

1 に答える 1

2

デフォルトでは、XMLGregorianCalendar#toString()メソッドは日付文字列をISO 8601「YYYY-MM-DDThh:mm:ssTZD」の形式で返します。たとえば、「2014-12-10T12:49:28-08:00」で、「T」は時間の区切り文字です。 . ショートカット ハックは、'T' をスペースに置き換えることですが、私の意見では、それは好ましいオプションではありません。

TO_TIMESTAMP()「YYYY-MM-DD HH24:MI:SS.FF3」のようなOracle の関数と互換性のある形式の日付文字列が必要なため、これを 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 に答える