Sens de [Z] dans le format + chaîne en Moment.js
Je me demande ce que cela fait:
newM = moment("2015-08-11T13:00:00.000000Z", "YYYY-MM-DDTHH:mm:ss.SSSS[Z]", true)
Précisément, le [Z] dans la chaîne de format.
Je suis en utilisant une bibliothèque (réaction de-bootstrap-datetimepicker) qui utilise le moment. Cette bibliothèque (réaction de composant) prend un paramètre "format" qui est utilisé comme deuxième paramètre moment
Je ne vois pas ce que le [Z] est en train de faire. Mais je dois le faire plutôt que de simplement 'Z' pour obtenir le résultat que je veux quand je format le moment d'objet pour l'affichage de cette chaîne: newM.format('YYYY-MM-DD HH:mm:ss.SSSZ').
EDIT:
pour être clair: je comprends que le " Z " sera la cause de la date-heure passée à être traités comme des UTC, selon les docs. Mais quelle est la signification des crochets - qui ne sont pas dans les docs.
OriginalL'auteur | 2016-05-05
Vous devez vous connecter pour publier un commentaire.
Z
ne cause pas le temps d'être traités comme des UTC lorsque utilisé dans le format. Il correspond à un fuseau horaire rédacteur de devis:Et en vertu de la documentation pour
format
:En spécifiant
Z
entre parenthèses, vous correspondez à un littéralZ
, et donc le fuseau horaire est à gauche au moment du défaut, ce qui est le fuseau horaire local.Si votre temps est vraiment de l'UTC, ce n'est probablement pas le comportement désiré. Si vous souhaitez analyser que l'UTC, mais l'afficher en heure locale, utilisez
Z
et ensuite appelerlocal()
sur lamoment
objet, de sorte que la plupart probablement ce que vous voulez, c'est:Oui, mais ce n'est pas la valeur par défaut
moment
fonction, c'est la surcharge de travail qui prend un format strict. Ma première citation est directement à partir de laString + Format
de la documentation, tandis que votre lien renvoie à laString
version.Le mode Strict n'affecte pas ce comportement. Il affecte seulement le séparateur de correspondance. Aller à momentjs.com et le moment de la course("2015-08-11T13:00:00.000000 Z", "AAAA-MM-JJTHH:mm:ss.SSSSZ", true).format() dans la console. Vous allez voir que je suis correct.
Docs sont certainement pas clair où vous êtes à la recherche. Créé github.com/moment/momentjs.com/issues/300 et se corriger plus tard.
J'ai lu cet exemple dans la doc: "instant("2010-10-20 4:30 +0000", "AAAA-MM-JJ HH:mm Z"); // analysée comme 4:30 UTC" que de dire que le Z dans la chaîne de format causes de la date à lire que l'UTC. Toutefois, le point est, que les docs faire clair, si vous lisez la ligne au-dessus de ce - que c'est la +0000 qui est à l'origine de la date à être analysée comme l'UTC. Le Z correspond à l' +0000. Merci Dark Falcon.
OriginalL'auteur Dark Falcon