マーキングする前にそれを完全に読んでください。Plus Joda TimeとJava 8 time.util *は使用できません。Joda Timeを使用しないでJava 7で夏時間を正しく処理する方法は?
DSTが有効になっている国の現在の日付を取得しようとしています。タイムゾーンでは[local-millis] = [UTC-millis] + [offset-millis]
になるので、のように現在のローカル時刻を取得するために、DST_OFFSET
を追加してDST対応国で時刻を取得してください。
現在のDST有効時間が1時間であるIstanbulの現在の時刻を出力するコード。
上記のコードは唯一の昼間は、その後、有効になっている場合にのみ追加するように私は、行以下を追加しようとした一般的なのはあまりないので、私に正しい出力Current date and time : 2015-11-01 20:49:54
The Hour of the Day is : 20
The TimeZone is : Europe/Istanbul
を与えた。しかし
public class DstInstanbul {
public static void main(String...args){
Calendar calendar = Calendar.getInstance();
TimeZone timeZone = TimeZone.getTimeZone("Europe/Istanbul");
calendar.setTimeZone(timeZone);
calendar.add(Calendar.MILLISECOND, timeZone.getDSTSavings());
SimpleDateFormat simpleDateFormatLocal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormatLocal.setTimeZone(TimeZone.getTimeZone("Europe/Istanbul"));
System.out.println("Current date and time : " + simpleDateFormatLocal.format(calendar.getTime()));
System.out.println("Current date and time : " + simpleDateFormatLocal.format(calendar.getTime()));
System.out.println("The TimeZone is : " + calendar.getTimeZone().getID());
}
}
dstSavingだから私は
if (timeZone.inDaylightTime(new Date())){
calendar.add(Calendar.MILLISECOND, timeZone.getDSTSavings());
}
と、次のcalendar.add(Calendar.MILLISECOND, timeZone.getDSTSavings());
を変更しかし、問題は、私はそうするならば、私は任意のDSTせずに出力を得ることです。そして、System.out.println(timeZone.inDaylightTime(new Date()));
を印刷する偽の私に与え、あなたがこのリンクでIstanbul clock
Current date and time : 2015-11-01 19:54:49
The TimeZone is : Europe/Istanbul.
を見ることができるようので、その結果が、夏時間があるタイムゾーンBrazilのための同じ論理がinDaylightTimeのために私に本当を与えるが、結果一時間を表示します先に今
方法で注文したすべてのコードのためのIdeoneリンクは、私の質問は、イスタンブールのティムとtimeZone.inDaylightTime(new Date())
に問題があるものである1 https://ideone.com/4NR5Ym 2. https://ideone.com/xH7vhp 3. https://ideone.com/tQenb5
を議論しましたeゾーン。なぜそれが間違っているのか。ブラジルのためになぜinDaylightTime
が本当であっても私は現在のDST時間を得ていません。 このような状況を処理する適切な方法は何ですか?
でも、ブラジルのカレンダーはありません。私は正しい出力を得ています.dstを追加する必要はありません。理由は何ですか? –
Windowsでは実行できません!私は 'GitBash'でも例外があります:'原因:java.io.EOFException java.util.zip.GZIPInputStream.readByte(GZIPInputStream.java:268) ' – FaithReaper