1

私はこのコードを持っています:

Date now = new Date();
// the string is in UTC format, so a UTC date must be constructed, I don't know if that happens in this format
Date measure = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(utcDateTime); 
long diff = now.getTime() - measure.getTime();
 if (diff < 1000* 60 * 15) {
   // measure is less then 15 minutes recent
   do some work
 }

差分を取得すると、タイムゾーンが含まれます。Date オブジェクトが内部的に UTC であることはわかっています。

ここで何が問題なのですか?

4

1 に答える 1

3

Dateオブジェクトは確かに UTC ですが、そうSimpleDateFormatでない場合もあります。デフォルトはシステムのタイムゾーンだと思います-それは確かに実験が示唆するものです. これは、 を使用して変更できますDateFormat.setTimeZone。したがって、テキストが UTC 日付/時刻を表す場合は、フォーマッターのタイム ゾーンも UTC に設定する必要があります。

または、一般的により優れた日付と時刻の API であるJoda Timeを使用することもできます:)

于 2010-06-29T10:21:10.833 に答える