1

some_fieldMySQL データベースに日時型フィールドがあります。recordSet.getTimestamp("somefield")オブジェクトを返すを使用してデータをクエリできますjava.sql.Timestamp。ただし、返される値には UTC 時刻が格納されます。タイムゾーンが「アメリカ/シカゴ」であることがわかっている場合、どうすれば時間を変換できますか。私は DST の世話をしなければなりません。

4

1 に答える 1

1

ミリ秒未満の精度を無視する必要があるかもしれないと思いますTimestamp-これは、特定のタイムゾーンに変換しているかのように、おそらく合理的であり、「人間の」日付であることを示唆しています。ともかく:

TimeZone zone = TimeZone.getTimeZone("America/Chicago");
Calendar calendar = Calendar.getInstance(zone); // Also locale?
calendar.setTime(timestamp);

これで、日付、時刻など、必要な値をカレンダーに問い合わせることができます。

または、はるかに優れた日付/時刻 API であるJoda Timeの使用を検討することもできます。

DateTimeZone zone = DateTimeZone.forID("America/Chicago");
DateTime dateTime = new DateTime(timestamp.getTime(), zone);
于 2012-07-31T20:44:44.793 に答える