こんにちは、読んでいただきありがとうございます。Java - xs:date形式に準拠した文字列をOracleのタイムスタンプ形式に変換する
私は現在、xs:date形式の日付/時刻を表す文字列をOracleのタイムスタンプに変換するという課題に直面しています。
私のようなルックスから始める文字列 - 「2011-07-12T16:20:02-04:00」
私はOracleのタイムスタンプに含まれるタイムゾーンのオフセットを必要としています。 「:20:02.0000 2011-07-12 12」上記の例ではタイムゾーンのオフセットがあったことを
注
- 変換処理が行われた後、私は次のようになり、タイムスタンプで終わる必要がありますタイムスタンプに組み込まれました。
誰でもこれを達成する方法はありますか?私はSimpleDateFormatオブジェクトを使用して文字列からjava.util.Dateオブジェクトを作成し、それをjava.sql.Timestampオブジェクトに変換しようとしました。ここでの問題は、タイムゾーンが考慮されていないことです。java.util.Dateオブジェクトはタイムゾーンオフセットを無視していると思います。
希望誰かが私をここに助けることができる...
編集:解決 - ここに私が使用して終了コードだ - 読書のため再び
Calendar Cal = DatatypeConverter.parseDateTime("2011-07-12T16:20:02+02:00");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(Cal.getTime()));
おかげで、
ザカリー・カーター
は、添付のリンクを参照してください、それはあなたを助けるかもしれません。 http://stackoverflow.com/questions/166600/java-date-format-incompatible-with-xquery-xsdate-format-how-to-fix – Perception
回答Perceptionに感謝します。残念ながら、私はApacheコモンズライブラリなどの外部Javaライブラリに依存することはできません。可能であれば、標準のJavaライブラリを使用してこの変換を実行する必要があります。 –
実際には、 'Calendar.getTime()'が 'Date'オブジェクトを返すことを知っています。これも知らなかった。 – membersound