Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone(gmt));
を使用することにより、他のGMT値の時間を取得しようとしていますが、どのように私は、そのタイムゾーンでDSTの時間を得ることができます。
Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone(gmt));
を使用することにより、他のGMT値の時間を取得しようとしていますが、どのように私は、そのタイムゾーンでDSTの時間を得ることができます。
夏時間を取得するjava.util.TimeZoneで利用可能ないくつかの方法があります。 BlackBerry Java Docsのページをご覧ください。
タイムゾーンクラスは、特定のタイムゾーンオブジェクトのgetDSTSavings()メソッドを提供します。 (JavaDoc: "ローカルウォールクロック時間を取得するためにローカル標準時間に追加する時間を返します。")
Calendarインターフェイスには、UTCからのオフセットを見つけるための2つのgetOffset()メソッドがあります。 (JavaDoc: "指定された日付のUTCからこのタイムゾーンのオフセットを返します。夏時間が指定された日付で有効な場合、オフセット値は夏時間の量で調整されます)"
Javaの時間の複雑な方法を完全に理解するには、コードのこの作品:
@Test
public void testDST() {
final TimeZone met = TimeZone.getTimeZone("MET");
Calendar gc = new GregorianCalendar(met);
final long timeInMillis = gc.getTimeInMillis();
final long gmtTime= timeInMillis-(gc.getTimeZone().getOffset(timeInMillis));
final Date gmtDate = new Date(gmtTime);
System.out.printf("%-40s: %tc\n%-40s: %tc\n%-40s: %tc\n%-40s: %d\n%-40s: %d",
"new Date() (local timezone)",new Date(),
"UTC", gmtDate ,
"now from Calendar with TC GMT+02:00",gc,
"zoneoffset",gc.get(Calendar.ZONE_OFFSET),
"dst savings",met.getDSTSavings());
}
あなたはまた、独自のSimpleTimeZoneを定義し、カスタムDST規則を提供することができますが、しかし、私は事前に定義されたタイムゾーンからこの情報を取得する方法を発見していません。
TimeZone.getTimeZone(TZName)が指定されたタイムゾーンを見つけられない場合、例外はスローされませんが、GMTを使用するだけで大きな誤解を招くことに注意してください。
あなたはカレンダーのjavadocにこのすべての情報(と多くの)を見つけることができ、タイムゾーン、日付、など
「、そのdoesnのそれは問題では完全には明らかではなかったが、BlackBerryのは、Javaミーを使用していますJava SE APIをすべて利用できます。 http://www.blackberry.com/developers/docs/7.0.0api/java/util/TimeZone.html –
を参照してください。これはブラックベリーで動作するはずです。しかし、あなたが投稿したドキュメントのリンクから、私はそれがgetOffsetとgetRawOffsetを持って参照してください。それらの違いは、現在の夏時間の量を与えるはずです。 – Ron