में सत्य नहीं है, मुझे कई तिथियों को प्रदर्शित करने में समस्या है जो लंबे समय तक संग्रहीत हैं। मैं उस कन्स्ट्रक्टर के साथ डेट ऑब्जेक्ट्स बनाता हूं जो लंबी तर्क लेता है, और उसके बाद तारीखों को पीडीएफ फ़ाइल में प्रिंट करता है।पुरानी तारीखों को गर्मियों के समय के रूप में पार्स किया जाता है, भले ही यह जावा
हालांकि, विंडोज़ की तुलना में लिनक्स पर प्रोग्राम चलाते समय मुझे पुरानी तिथियों में समस्या है।
इस तिथि को लें: 25. अप्रैल 1 9 76 00:00:00 (लंबा मूल्य: 199231200000 एल) उदाहरण के लिए। अगर मैं एक dateformater का उपयोग तारीख को प्रदर्शित करने के लिए, यह लिनक्स और विंडोज पर अलग ढंग से प्रदर्शित करेगा:
विंडोज पर: 25 अप्रैल 1976 00:00:00 CEST
लिनक्स पर: 24. अप्रैल 1976 23:00 : 00 सीईटी
टेक्स्ट प्रतिनिधि। निम्न पंक्ति चलाकर बस दिखाया जा सकता है:
DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date(199231200000L))
मैं Joda Time इस्तेमाल किया इस परीक्षण के लिए DATEVALUE पाने के लिए:
new org.joda.time.DateTime().withDate(1976, 4, 25).withTime(0, 0, 0, 0).toDate().getTime()
क्यों विंडोज CEST के रूप में उत्पादन दिखाता है, और सीईटी के रूप में लिनक्स?
कौन सा * सटीक * समय क्षेत्र आप में हैं? (भौतिक रूप से आप कहां हैं?) 'टाइमज़ोन.getDefault()। GetID()' लिनक्स और विंडोज़ पर प्रत्येक पर क्या दिखाता है? मुझे संदेह है कि आपकी दो मशीनों को अलग-अलग कॉन्फ़िगर किया गया है ... –
पेरिस में मध्यरात्रि उस समय तत्काल (सीईएसटी) पर था लेकिन सीईटी में 23:00 बजे था। तो दोनों परिणाम सही हैं और आउटपुट आपकी मशीन के टाइमज़ोन पर निर्भर करता है। – assylias
एचएम - खिड़कियां यूरोप/पेरिस कहती हैं और लिनक्स यूरोप/कोपेनहेगन कहते हैं। (मैं denmark में हूँ) तो यह समझाने के लिए लगता है। लेकिन विंडोज़ पीसी पर टाइमज़ोन सेटिंग्स में, कोपेनहेगन और पेरिस के बीच कोई अंतर नहीं है - उन्हें एक (यूटीसी +01) –