JavaからDATETIMEを照会しようとしています。私はサーバーのタイムゾーンを知っていますが、私は期待していたようにタイムゾーンで日時を引き出すことはできません。Javaで指定されたタイムゾーンでmysql DATETIMEを照会します。
ResultSet rs = st.executeQuery(...);
Date d1=rs.getTime(i, Calendar.getInstance(TimeZone.getTimeZone("UTC")));
Date d2=rs.getTime(i, Calendar.getInstance(TimeZone.getTimeZone("PST")));
System.out.println("d1: "+d1.getTime());
System.out.println("d2: "+d2.getTime());
これは私を残します:
d1: 40258000
d2: 40258000
は、私がここでの基本的な何かが足りないのですか?
ResultSet.getDate()
は、カレンダーを考慮しています。しかし、私はそれが時間情報を切り捨てるのでそれを使うことはできません。まだ変わっています。ResultSet.getTime()
はタイムゾーンの変換を処理しません。
「Date.getTime()」は常にGMTで表示されますか? –
ResultSet.getTime()またはDate.getTime()?私は、Date.getTime()がUTCで取得されることを知っています。 – user833970
@ user833970 Jon Skeetが指摘しているように、ResultSet.getTime()はデータベースにタイムゾーン情報が格納されていない場合、タイムゾーンを考慮に入れています(ドキュメントに従って)。あなたの例ではカレンダーを考慮していないので、データベースには情報が格納されていると思います。/ – Tim