इसका कारण यह है अपने स्थानीय समय क्षेत्र, प्राप्त करने के लिए क्या आप SimpleDateFormat
का उपयोग कर की तारीख बदलने की जरूरत है:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
अद्यतन आप जब टिप्पणी:
I tried formatting it to a String then again parsing it to a Date. Then setting time in Calender object. Does not work. Still i get output as "2015-04-15T11:04:30.000Z"
आप समझना चाहिए कि Calendar
या Date
वस्तुओं को अपने प्रारूप में संग्रहीत किया जाता है, दूसरी बात यह है कि आप उन्हें कैसे प्रिंट करते हैं, इसलिए इस मामले में, 2015-04-15T11:04:30.000Z
में देखेंप्रतिनिधित्व महत्वपूर्ण नहीं है, आपको 2015-04-15
पर सही दिनांक 11:04:30
पर वांछित प्रारूप में दिखाने के लिए यह आवश्यक है कि यह उपयोगकर्ता के अनुकूल आपके आउटपुट को बनाने के लिए है।
उत्पादन आपको मिल Calendar.toString() से है और विधि दस्तावेज़ का कहना है:
Return a string representation of this calendar. This method is intended to be used only for debugging purposes, and the format of the returned string may vary between implementations. The returned string may be empty but may not be null.
तो आदेश की तारीख और समय स्टोर करने के लिए में, अपने Calendar
वस्तु सही है। इसे प्रिंट करने के लिए, आपको इसे String
में बदलना होगा।
स्रोत
2015-05-18 08:14:25
मैं फिर से फिर एक स्ट्रिंग के लिए प्रारूपित एक तिथि के लिए यह पार्स करने की कोशिश की। फिर कैलेंडर ऑब्जेक्ट में समय निर्धारित करें। काम नहीं करता। फिर भी मुझे "2015-04-15T11: 04: 30.000Z" के रूप में आउटपुट मिलता है। – Raj
कैलेंडर की'toString() 'विधि का अपना कार्यान्वयन है !!! यदि आप इसे आउटपुट बदलना चाहते हैं, या बस एक स्ट्रिंग स्वरूपित मुद्रित करना चाहते हैं, तो आपको इसे ओवरराइड करने की आवश्यकता है, आपको इसकी देखभाल करने की आवश्यकता नहीं है कि यह कैसे संग्रहीत किया जाता है .... –
धन्यवाद।मैंने उस स्पष्टीकरण से बहुत कुछ सीखा। – Raj