मैं एक जावा ग्रेगोरियन कैलेंडर के साथ एक अजीब समस्या है:जावा ग्रेगोरी कैलेंडर समय-क्षेत्र
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()));
मैं डिफ़ॉल्ट समय क्षेत्र = अमेरिका प्रशांत के साथ एक मशीन पर ऊपर दिए गए कोड निष्पादित, लेकिन मशीन जर्मनी में चल रहा है।
परिणाम निम्नलिखित है:
2011-11-06 01:00:00:0 -0700
2011-11-06 01:00:00:0 -0800
मैं सच में समझ में नहीं आता, क्यों परिणाम में एक अलग समय क्षेत्र है वहाँ ... मैं भी कोड किसी अन्य मशीन पर परीक्षण (डिफ़ॉल्ट समय-क्षेत्र = जीएमटी) और यह सही काम करता है।
क्या किसी के पास कोई विचार है, यह समस्या क्यों होती है?
बेस्ट, माइकल
जावा के विच संस्करण के कारण हो सकता है? ;-) कभी-कभी एक संस्करण में बग हैं और दूसरों में नहीं। – reporter
मैं जावा 1.6 का उपयोग करता हूं। – Michael