"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > UNIX टाइमस्टैम्प को दिनांकों में परिवर्तित करते समय SimpleDateFormat.parse आउटपुट निर्दिष्ट से भिन्न क्यों होता है?

UNIX टाइमस्टैम्प को दिनांकों में परिवर्तित करते समय SimpleDateFormat.parse आउटपुट निर्दिष्ट से भिन्न क्यों होता है?

2024-11-09 को प्रकाशित
ब्राउज़ करें:909

Why does SimpleDateFormat.parse output differently than specified when converting UNIX timestamps to dates?

SimpleDateFormatter.parse निर्दिष्ट से भिन्न आउटपुट

SimpleDateFormat का उपयोग करके UNIX टाइमस्टैम्प को दिनांकों में परिवर्तित करते समय, आपको निर्दिष्ट प्रारूप और के बीच विसंगतियों का सामना करना पड़ सकता है आउटपुट.

दिए गए उदाहरण में, लक्ष्य UNIX टाइमस्टैम्प ("a1527069600") को "dd/MM/yyyy hh:mm:ss a" प्रारूप में एक तारीख में परिवर्तित करना है। हालाँकि, SimpleDateFormatter.format के बाद SimpleDateFormatter.parse का उपयोग करने से एक अलग आउटपुट प्राप्त होता है। इन्स्टेन्शियेशन के दौरान निर्दिष्ट प्रारूप ("dd/MM/yyyy hh:mm:ss a")। इस मामले में, SimpleDateFormatter.format दिनांक को अपेक्षित इनपुट प्रारूप से भिन्न प्रारूप में आउटपुट करता है, जिससे पार्स ऑपरेशन विफल हो जाता है।

Solution

इस समस्या से बचने के लिए , यह अनुशंसा की जाती है कि दिनांक स्ट्रिंग को MySQL डेटाबेस में पास न करें। इसके बजाय, दिनांक ऑब्जेक्ट का उपयोग करें। आधुनिक जावा दिनांक और समय एपीआई, java.time, LocalDateTime जैसी कक्षाएं प्रदान करता है जो दिनांक प्रबंधन को आसान बनाता है। "; लंबा युग = Long.parseLong(ep.substring(1)); त्वरित उदाहरण = Instant.ofEpochSecond(epoch); LocalDateTime ldt = inst.atZone(ZoneId.of("एशिया/कलकत्ता")).toLocalDateTime(); System.out.println(ldt.toString()); // आउटपुट: 2018-05-23T15:30 तैयार स्टेटमेंट पीएस = myDatabaseConnection.prepareStatement( "my_table (my_date_time) मानों में डालें (?)"); ps.setObject(1, ldt);

यह कोड UNIX टाइमस्टैम्प को LocalDateTime में परिवर्तित करता है, जिसे सीधे MySQL डेटाबेस में डाला जा सकता है।

निष्कर्ष:

java.time का उपयोग करके और स्ट्रिंग्स के बजाय MySQL में दिनांक ऑब्जेक्ट पास करके, आप फ़ॉर्मेटिंग समस्याओं को समाप्त कर सकते हैं और दिनांक रूपांतरण की सटीकता सुनिश्चित कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3