0
votes

Comment formater date yyyymmddmmhhssuuu

J'ai une valeur "code" 20200513134950000 et le format doit être yyyymmddmmhhssuuu. Je ne peux pas envelopper ma tête autour de la façon de le formater correctement. J'ai essayé la bibliothèque de date-FNS et le format de date natif, mais sans chance. Des idées?


3 commentaires

Euh, vous n'avez pas déjà le bon format? 2020-05-13 13: 49: 50.000? Ou quel est le problème exactement? Retourner ce numéro dans un objet de date?


Ouais, analyser l'objet à ce jour


Est-ce que cela répond à votre question? Comment formater une date javascript


3 Réponses :


0
votes

Vous pouvez essayer d'utiliser Dayjs . C'est une bibliothèque légère et vous permet de spécifier format d'analyse personnalisé code> pour l'analyse des dates.

const dayjs = require('dayjs');
var customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
console.log(dayjs('20200513134950000', 'YYYYMMDDmmhhssuuu'))


0 commentaires

1
votes

Vous pouvez extraire toutes les pièces pertinentes du nombre avec une simple réégycle ou même en comptant des nombres. Ensuite, la seule mise en garde est que des mois sont à base de zéro, mais en dehors de cela, vous pouvez simplement utiliser le constructeur de date standard ().

p>

const timestamp = 20200513134950000;

const UTC_mask = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{3})/;

const [
  year,
  month,
  day,
  hour,
  min,
  sec,
  ms
] = timestamp.toString().match( UTC_mask ).slice( 1 );
      
const datetime = new Date( year, parseInt( month, 10 ) - 1, day, hour, min, sec, ms );

console.log( datetime );


1 commentaires

Le mois peut être juste mois - 1 , l'opérateur - contrainte la chaîne au numéro pour vous. ;-)



1
votes

Sans aucune bibliothèque, vous pouvez simplement obtenir les pièces et les transmettre au constructeur de date:

p>

let ts = '20200513134950000';
let [c,y,m,d,H,M,S] = ts.match(/\d\d/g);
console.log(new Date(c+y,--m,d,H,M,S).toString());


0 commentaires