web-dev-qa-db-fra.com

Comment obtenir un horodatage Unix dans Clojure?

Je veux savoir quel est l'horodatage actuel. Le mieux que je puisse faire jusqu'à présent est de définir ma propre fonction qui fait ceci:

(int (/ (.getTime (Java.util.Date.)) 1000))

Existe-t-il une fonction standard pour récupérer l'horodatage Unix avec clojure?

27
Brad Koch

J'irais avec clj-time , la bibliothèque standard de Clojure pour traiter les heures et les dates (wrapping Joda-Time ). Oui, c'est une dépendance supplémentaire pour un simple besoin et peut être exagéré si vous ne voulez vraiment que l'horodatage actuel; même dans ce cas, c'est juste une belle commodité pratiquement sans frais. Et si vous avez finalement besoin de fonctionnalités supplémentaires liées au temps, elles seront là avec une excellente implémentation de toutes les bases.

En ce qui concerne le code, voici le spécificateur de dépendance Leiningen pour la version actuelle:

[clj-time "0.5.1"]

Et voici un extrait pour obtenir l'horodatage actuel:

(require '[clj-time.core :as time]
         '[clj-time.coerce :as tc])

;; milliseconds since Unix Epoch
(tc/to-long (time/now))

;; also works, as it would with other JVM date and time classes
(tc/to-long (Java.util.Date.))
15
Michał Marczyk