Kann bitte jemand diese Art von Format in Javascript erklären
T00:00:00.000Z
Und wie kann man es parsen?
Ali Akram
Kann bitte jemand diese Art von Format in Javascript erklären
T00:00:00.000Z
Und wie kann man es parsen?
nanndoj
Es ist ein Teil von ISO-8601 Datumsdarstellung. 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 unverändert zu analysieren, erhalten Sie eine Invalid Date
Error:
new Date('T00:00:00.000Z'); // Invalid Date
Ich denke, der Weg, einen Zeitstempel in diesem Format zu analysieren, besteht darin, ihn mit einem beliebigen Datum zu verknüpfen
new Date('2015-03-04T00:00:00.000Z'); // Valid Date
Dann können Sie nur den gewünschten 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());
Schließen – Sie sollten verwenden getUTCHours
, getUTCMinutes
und getUTCSeconds
. Andernfalls vermitteln Sie das Verhalten der lokalen Zeitzone, was je nach Zeitzone und ausgewähltem Datum zu unterschiedlichen Ergebnissen führt – aufgrund der Sommerzeit.
– Matt Johnson-Pint
9. März 2015 um 19:43 Uhr
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";
Jetzt, da Sie das richtige Format für eine Zeit 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 Folgendes tun:
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/
Sie sollten dies direkt im Moment-Konstruktor mit einem geeigneten Formatstring analysieren können. (moment nimmt das aktuelle Datum an, wenn es nicht Teil des Werts ist.) Sie könnten auch in Betracht ziehen moment.utc(...)
Der resultierende Wert liegt also in derselben UTC-Zone wie der ursprüngliche Wert.
– Matt Johnson-Pint
9. März 2015 um 19:47 Uhr
Können Sie mir sagen, wie wir von der formatierten Datumsversion zurück in die ursprüngliche Datumsversion T00:00:00.000Z konvertieren können?
– Chronoviser
10. Juni 2021 um 10:05 Uhr
Verwenden Sie dieses Ergebnis, um das Format T00:00:00.000Z zu erhalten?
– Ugur
6. September 2021 um 15:11 Uhr
dieser_entwickler
Wie eine Person vielleicht schon vorgeschlagen hat,
Ich habe die bestanden ISO 8601 Datumszeichenfolge direkt zum Moment so …
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')
Beide Lösungen führen zum gleichen Ergebnis.
console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019
Weitere Informationen zu momentjs http://momentjs.com/
Wäre gut, auch zu verlinken und die Verwendung zu empfehlen moment.js Javascript-Bibliothek deutlich, während der obige Code erklärt wird.
– VKen
5. November 2019 um 14:16 Uhr
Damit ist die Frage nicht beantwortet. Sobald Sie über einen ausreichenden Ruf verfügen, können Sie jeden Beitrag kommentieren. stattdessen, Geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern. – Aus Bewertung
– Phil Melodie
5. November 2019 um 14:30 Uhr
@PhilTune du hast Recht, ich glaube, mein Gehirn hat sich so schnell bewegt, dass ich technisch gesehen auf einen Kommentar und nicht auf die Frage geantwortet habe
– that_developer
5. November 2019 um 20:28 Uhr
Shahid Hussein Abbasi
Bitte verwenden Sie DateTimeFormatter ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
Anstatt von DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
oder irgendein Muster
Dies hat mein Problem unten behoben
java.time.format.DateTimeParseException: Text „2019-12-18T19:00:00.000Z“ konnte bei Index 10 nicht geparst werden
Sujay Kundu
Da jemand gefragt hat, wie man es implementiert:
Es ist einfach zu bedienen momentjs :
// install using yarn
yarn add moment
// or install using npm
npm i moment
dann können Sie so vorgehen, um das Datum entsprechend dem gewünschten Format zu extrahieren:
import 'moment' from moment;
let isoDate = "2021-09-19T05:30:00.000Z";
let newDate = moment.utc(isoDate).format('MM/DD/YY');
console.log('converted date', newDate); // 09/23/21
let newDate2 = moment.utc(isoDate).format("MMM Do, YYYY");
console.log('converted date', newDate2); // Sept 24, 2021
FXLima
Ich hatte ähnliche Probleme, ich habe es gelöst, indem ich das Datum / die Uhrzeit konvertiert habe, bevor ich sie an den Server gesendet habe, indem ich Folgendes verwendet habe:
Beispiel: (UTC Brasilien) Ich habe “fünfzehn/12/2020 22:30:00″ und es wurde gesendet: ‘2020-12-16T01:30:00.000Z’. Sie konvertieren mit:
var date = new Date('2020-11-06T01:30:00.000Z');
console.log(date.toLocaleDateString());
console.log(date.toLocaleString());
console.log(date.toLocaleTimeString());
de.wikipedia.org/wiki/ISO_8601
– Zeichnete
9. März 2015 um 19:10 Uhr
T
bedeutet “Zeit” und trennt normalerweise das Datum von der Zeitkomponente.Z
bedeutet, dass der Wert in Bezug auf ist koordinierte Weltzeit– Matt Johnson-Pint
9. März 2015 um 19:44 Uhr
Eine Datumszeit, die mit Z endet, wird auch als Zulu-Zeit bezeichnet.
– Strattonn
29. Juli 2021 um 5:06 Uhr