Czym różni się EST od EST5EDT? Czy EST nie uwzględnia DST?Czym różni się EST strefy czasowej od EST5EDT?
napisałem małą java fragment, aby dowiedzieć się różnicę i wyjście mówi EST5EDT odbywa się na konto DST podczas EST nie
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss.SSS");
dateFormat.setTimeZone(TimeZone.getTimeZone("EST5EDT"));
System.out.println("EST5EDT" +dateFormat.format(new Date()));
/* prints EST5EDT2013-Apr-05 02:24:16.471 */
dateFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss.SSS");
dateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
System.out.println("EST "+dateFormat.format(new Date()));
/*prints EST 2013-Apr-05 01:24:16.472 */
Ale poniżej urywek produkowane wyjście szokującą
System.out.println("EST5EDT offset "+TimeZone.getTimeZone("EST5EDT").getRawOffset()/(60*60*1000));
/* prints 5 instead of 4 (DST) */
mogłyby ktoś proszę wyjaśnić, co dokładnie się tutaj dzieje? dlaczego getRawOffset zwraca 5 zamiast 4? Jak uzyskać przesunięcie strefy czasowej za pomocą DST?
unikać zarówno '' EST5EDT' EST' i identyfikatory stylu miarę możliwości. Zamiast tego używaj "America/New_York" i powiązanych identyfikatorów. [Zobacz tutaj] (http://www.nntp.perl.org/group/perl.datetime/2009/03/msg7221.html) i dup post. –