क्या कोई, कृपया, जावास्क्रिप्ट में इस प्रकार के प्रारूप की व्याख्या कर सकता है
T00:00:00.000Z
और इसे पार्स कैसे करें?
क्या कोई, कृपया, जावास्क्रिप्ट में इस प्रकार के प्रारूप की व्याख्या कर सकता है
T00:00:00.000Z
और इसे पार्स कैसे करें?
जवाबों:
यह ISO-8601 तारीख प्रतिनिधित्व का एक हिस्सा है । यह अधूरा है क्योंकि इस पैटर्न में एक पूर्ण तिथि प्रतिनिधित्व में भी तारीख शामिल होनी चाहिए:
2015-03-04T00:00:00.000Z //Complete ISO-8601 date
यदि आप इस तिथि को पार्स करने का प्रयास करते हैं तो यह है कि आपको एक Invalid Date
त्रुटि मिलेगी :
new Date('T00:00:00.000Z'); // Invalid Date
इसलिए, मुझे लगता है कि इस प्रारूप में टाइमस्टैम्प को पार्स करने का तरीका किसी भी तारीख के साथ समतल करना है
new Date('2015-03-04T00:00:00.000Z'); // Valid Date
तब आप केवल वह हिस्सा निकाल सकते हैं जिसे आप चाहते हैं (टाइमस्टैम्प हिस्सा)
var d = new Date('2015-03-04T00:00:00.000Z');
console.log(d.getUTCHours()); // Hours
console.log(d.getUTCMinutes());
console.log(d.getUTCSeconds());
getUTCHours
, getUTCMinutes
और getUTCSeconds
। अन्यथा, आप स्थानीय समय क्षेत्र के व्यवहार को लागू कर रहे हैं, जो कि समय क्षेत्र के आधार पर अलग-अलग परिणाम देगा, और किस तारीख को आप चुनते हैं - डीएसटी के कारण।
मेरा सुझाव है कि आप इसके लिए उपयोग moment.js
करें। क्षण में। आप कर सकते हैं:
var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";
अब जब आपके पास एक समय के लिए सही प्रारूप है, तो इसे वैध होने पर पार्स करें:
var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.
और समय भागों को प्राप्त करने के लिए आप कुछ कर सकते हैं जैसे:
var momentDate = moment(proposedDate)
var hour = momentDate.hours();
var minutes = momentDate.minutes();
var seconds = momentDate.seconds();
// or you can use `.format`:
console.log(momentDate.format("YYYY-MM-DD hh:mm:ss A Z"));
Momentjs के बारे में अधिक जानकारी http://momentjs.com/
moment.utc(...)
कि परिणामी मूल्य मूल मूल्य के समान UTC क्षेत्र में है।
जैसा कि एक व्यक्ति ने पहले ही सुझाया होगा,
मैंने आईएसओ 8601 तारीख स्ट्रिंग को सीधे पास कर दिया जैसे कि ...
`moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')`
या
`moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')`
इन समाधानों में से कोई भी आपको एक ही परिणाम देगा।
`console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019`
कृपया या किसी पैटर्न के ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
बजाय DateTimeFormatter का उपयोग करेंDateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
इससे मेरी समस्या ठीक हो गई
java.time.format.DateTimeParseException: पाठ '2019-12-18T19: 00: 00.000Z' सूचकांक 10 में पार्स नहीं किया जा सका