Tôi có một vấn đề lạ với Lịch Gregorian Java:Java GregorianCalendar múi giờ
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:S Z");
sdf.setTimeZone(TimeZone.getTimeZone("US/Pacific"));
GregorianCalendar cal1 = new GregorianCalendar(TimeZone.getTimeZone("US/Pacific"));
cal1.setTimeInMillis(1320566400000L);
GregorianCalendar cal2 = new GregorianCalendar(TimeZone.getTimeZone("US/Pacific"));
cal2.setTimeInMillis(1320570000000L);
System.out.println(sdf.format(cal1.getTime()));
System.out.println(sdf.format(cal2.getTime()));
tôi thực thi mã đưa ra ở trên trên một máy với mặc định múi giờ = Mỹ Thái Bình Dương, nhưng máy đang chạy ở Đức.
Kết quả như sau:
2011-11-06 01:00:00:0 -0700
2011-11-06 01:00:00:0 -0800
Tôi thực sự không hiểu, tại sao có một múi giờ khác nhau trong kết quả ... Tôi cũng đã thử nghiệm mã trên máy khác (mặc định múi giờ = GMT) và nó hoạt động chính xác.
Có ai đó có ý tưởng không, tại sao vấn đề này xảy ra?
nhất, Michael
Phiên bản Java nào bạn đã sử dụng? ;-) Đôi khi có lỗi trong một phiên bản và không có trong các phiên bản khác. – reporter
Tôi sử dụng Java 1.6. – Michael