3

エジプトには夏時間がありません。サーバーでWebアプリを作成していて、時間をエジプト時間に変更しようとすると機能しましたが、夏時間モードで非アクティブ化するにはどうすればよいですか。

4

2 に答える 2

5

JVMで夏時間をオフにすることはできません。各タイムゾーンは、オフセットと、夏時間が適用されるかどうか(適用される場合は、どの日付の間)でエンコードされます。

これは次の方法で確認できます。

TimeZone.getDefault().useDaylightTime();
TimeZone.getDefault().inDaylightTime( new Date() );

ただし、TZUpdaterツールを使用して、JDKインストールのタイムゾーンファイルを更新できます。

http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html

PS:これがエジプトの変更が導入されたタイムゾーンファイルのリビジョンです。それ以来、10の追加アップデートがありました。

導入されたバージョンJREバージョンTzUpdaterVersion説明

tzdata2011g 1.4.2_33 5.0u31 6u2671.3.39エジプトのDST規則が今年DSTを放棄するように変更されました。

于 2012-07-06T02:37:20.090 に答える
2

マットの答えに関連して、Java 1.6.0_31で:

Date now = new Date();

TimeZone zoneEET = TimeZone.getTimeZone("EET"); // Traditionally used for Egypt
System.out.println(zoneEET.getDSTSavings());  // 1h for DST
System.out.println(zoneEET.getRawOffset());  // GMT+2
System.out.println(zoneEET.inDaylightTime(now)); // true
TimeZone.setDefault(zoneEET));
System.out.println(now);
System.out.println("");

TimeZone zoneEgypt = TimeZone.getTimeZone("Egypt"));
System.out.println(zoneEgypt.getDSTSavings()); // no DST
System.out.println(zoneEgypt.getRawOffset()); // GMT+2
System.out.println(zoneEgypt.inDaylightTime(now)); // false
TimeZone.setDefault(zoneEgypt));
System.out.println(now);

したがって、1.6.0_26から、DSTのない「エジプト」という名前の「特別な」ゾーンがあるようです。

于 2012-07-06T03:11:29.463 に答える