Kann jemand bitte diese Art von Format in Javascript erklären
T00:00:00.000Z
Und wie kann man es analysieren?
Kann jemand bitte diese Art von Format in Javascript erklären
T00:00:00.000Z
Und wie kann man es analysieren?
T
bedeutet "Zeit" und trennt normalerweise das Datum von der Zeitkomponente. Z
bedeutet, dass der Wert in UTC angegeben ist
Antworten:
Es ist Teil der Datumsdarstellung nach ISO-8601 . Es ist unvollständig, da eine vollständige Datumsdarstellung in diesem Muster auch das Datum enthalten sollte:
2015-03-04T00:00:00.000Z //Complete ISO-8601 date
Wenn Sie versuchen, dieses Datum so zu analysieren, wie es ist, erhalten Sie eine Invalid Date
Fehlermeldung:
new Date('T00:00:00.000Z'); // Invalid Date
Ich denke, der Weg, einen Zeitstempel in diesem Format zu analysieren, besteht darin, sich auf ein beliebiges Datum zu konzentrieren
new Date('2015-03-04T00:00:00.000Z'); // Valid Date
Dann können Sie nur das gewünschte Teil extrahieren (Zeitstempelteil)
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
und getUTCSeconds
. Andernfalls geben Sie das Verhalten der lokalen Zeitzone an, was je nach Zeitzone und ausgewähltem Datum aufgrund der Sommerzeit zu unterschiedlichen Ergebnissen führt.
Ich schlage vor, Sie verwenden moment.js
dafür. In moment.js können Sie:
var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";
Nachdem Sie eine Zeit lang das richtige Format haben, analysieren Sie es, wenn es gültig ist:
var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.
und um Zeitteile zu erhalten, können Sie etwas tun wie:
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"));
Weitere Informationen zu momentjs http://momentjs.com/
moment.utc(...)
dass sich der resultierende Wert in derselben UTC-Zone befindet wie der ursprüngliche Wert.
Wie eine Person vielleicht bereits vorgeschlagen hat,
Ich habe die ISO 8601- Datumszeichenfolge direkt an einen Moment wie diesen übergeben ...
`moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')`
oder
`moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')`
Mit jeder dieser Lösungen erhalten Sie das gleiche Ergebnis.
`console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019`
Bitte verwenden Sie DateTimeFormatter ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
anstelle eines DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
Musters
Dies hat mein Problem unten behoben
java.time.format.DateTimeParseException: Der Text '2019-12-18T19: 00: 00.000Z' konnte bei Index 10 nicht analysiert werden