web-dev-qa-db-fra.com

Moment JS - analyser UTC et convertir en local et vice versa

J'ai parcouru la documentation et je suis un peu confus sur la façon de procéder. Il y a des questions similaires, mais aucune ne parle d'analyser des dates particulières reçues dans des formats et de permuter entre les dates locales et utc.

  1. Je reçois un datetime local, un format de datetime local et j'ai besoin de générer utc datetime dans un format particulier et c'est ainsi que je pense que je devrais le faire. moment(dateTime,localDateTimeFormat).utc().format(specifiedFormat);

  2. Je reçois un datetime utc dans un format particulier et je dois générer un datetime spécifique aux paramètres régionaux dans un format particulier. Comment fait-on ça? moment.utc(utcDateTime, utcDateTimeFormat).toDate(); me donne la date javascript je crois. Comment puis-je le formater alors ?? Dois-je créer un nouveau moment à l'aide de l'objet Date généré?

Une autre chose que je pourrais faire serait d'obtenir le fuseau horaire, puis de formater. Je me demande si je prends la mauvaise route ici. Veuillez aider.

39
Chiranjib
  • Sur le point 1 - Oui, c'est une façon de le faire. Cependant, si le format de sortie est simplement un horodatage UTC ISO8601, vous pouvez appeler toISOString directement à l'instant d'origine. Comme UTC est impliqué par la sortie, il serait redondant d'appeler à nouveau utc().

  • Sur l'élément 2 - Tout comme la fonction utc(), il y a aussi une fonction local(). Une fois que vous avez un objet moment, vous pouvez utiliser toDate ou format ou toute autre fonction décrite dans la documentation. Non, vous n'avez pas besoin de créer un nouveau moment à l'aide de l'objet date généré.

    moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat)
    

    Encore une fois, il y a plus d'une façon de faire les choses ici. Si le utcDateTime est déjà au format ISO8601 et contient un Z ou un décalage comme -01:00, alors cela sera pris en compte et vous pouvez simplement le faire:

    moment(utcDateTime).format(specifiedFormat)
    
  • Sur le dernier élément que vous avez mentionné au sujet des fuseaux horaires, il est difficile de dire ce que vous demandez. Vous devez élaborer avec des détails spécifiques dans une nouvelle question.

74
Matt Johnson-Pint