J'utilise l'heure locale et cl-date-time-parser :
edit : et chronicité pour analyser les dates et les heures en langage naturel.
(local-time:parse-timestring "2019-11-13T18:09:06.313650+01:00") ;; OK
(local-time:parse-timestring "2019-11-13") ;;OK
Cela échoue avec l'heure locale par défaut :
(local-time:parse-timestring "2019/11/13")
mais cela fonctionne avec Chronicity :
(chronicity:parse "2019/11/13")
@2019-11-13T00:00:00.000000+01:00
et nous pouvons définir le séparateur de date de l'heure locale à "/" :
(local-time:parse-timestring "2019/11/13" :date-separator #\/) ;; OK
Il y a aussi les séparateurs d'heure et de date.
Maintenant, un format comme ""Wed Nov 13 18:13:15 2019"" échouera. Nous utiliserons le format cl-date-time-parser
bibliothèque :
(cl-date-time-parser:parse-date-time "Wed Nov 13 18:13:15 2019")
;; 3782657595
;; 0
Elle renvoie le temps universel qui, à son tour, peut être ingéré avec la fonction bibliothèque de temps local :
(local-time:universal-to-timestamp *)
;; @2019-11-13T19:13:15.000000+01:00