からGMT +1を回復する方法を知りたいですjava.util.TimeZone
。たとえば、値がGMT +1またはGMTTimeZone.getTimeZone("Europe/Madrid")
であることを知りたいとします。TimeZone.getTimeZone("Atlantic/Canary")
質問する
150 次
3 に答える
3
質問にはすでに回答済みですが、Joda Date Time APIを使用することをお勧めします。これは非常に強力で、JDK の Date および Time クラスにあったすべての制限をカバーしています。
乾杯
于 2013-07-26T08:25:09.530 に答える
2
メソッドを使用できますgetOffset
。この方法では、long date
夏時間などを考慮する必要があります。
public static void main(String[] args) throws Exception {
final TimeZone madrid = TimeZone.getTimeZone("Europe/Madrid");
final TimeZone canaries = TimeZone.getTimeZone("Atlantic/Canary");
final long now = System.currentTimeMillis();
System.out.println(madrid.getOffset(now));
System.out.println(canaries.getOffset(now));
}
ご覧のとおり、これはオフセットをミリ単位で返します
7200000
3600000
次に、使用TimeUnit
して時間に変換できます。
System.out.println(TimeUnit.MILLISECONDS.toHours(madrid.getOffset(now)));
System.out.println(TimeUnit.MILLISECONDS.toHours(canaries.getOffset(now)));
出力:
2
1
于 2013-07-26T07:35:12.603 に答える
1
getOffset メソッドは、差をミリ秒単位で返します。
これらのタイム ゾーンも DST を使用することに注意してください。UTC からの現在のオフセットは、それぞれ 2 時間と 1 時間です。
于 2013-07-26T07:36:32.297 に答える