Tôi chạy một chương trình Java trên máy Windows. Tôi đang cố gắng để có được một danh sách các múi giờ và thông tin liên quan của họ. Dưới đây là chương trình hoàn chỉnh:Java không tạo ra thông tin múi giờ chính xác
String[] allTimeZones = TimeZone.getAvailableIDs();
Date now = new Date();
for (int i = 0; i < allTimeZones.length; i++) {
TimeZone tz = TimeZone.getTimeZone(allTimeZones[i]);
System.out.format("%s;%s; %f \n",
allTimeZones[i],
tz.getDisplayName(),
(float) (tz.getOffset(now.getTime())/3600000.0));
}
Một trong những múi giờ được tạo ra có các thông tin sau:
America/New_York; Giờ chuẩn Đông; -4.000000
Điều này thật khó hiểu. Tại thời điểm này, New York đang ở thời gian tiết kiệm ánh sáng ban ngày mùa hè đông. Vì vậy, thông tin trên không đúng.
Có ai biết làm thế nào tôi có thể làm cho Java để tạo
America/New_York; Giờ chuẩn Đông; -5,000000
hoặc một cái gì đó giống như
America/New_York này; Đông Summer Daylight Saving Time; -4.000000
Cảm ơn bạn đã trợ giúp!
Trân
http://www.timeanddate.com/worldclock/city.html?n=179 –
bạn có yêu cầu cho làm thế nào để có được tất cả các múi giờ trên thế giới, hoặc làm thế nào để có được "thời gian cục bộ" như được định nghĩa trên hệ điều hành của máy tính mà mã của bạn đang chạy? –
Ngoài ra, hãy xem [JodaTime] (http://joda-time.sourceforge.net/) được xem là thư viện ngày/giờ tốt hơn. –