278 votes

Comment puis-je générer des timestamps Unix ?

Question connexe est celle de "Datetime Pour Unix timestamp", mais cette question est plus générale.

J'ai besoin des timestamps Unix pour résoudre ma dernière question. Mes intérêts sont le Python, Ruby et Haskell, mais d'autres approches sont les bienvenus.

Quelle est la façon la plus simple de générer des timestamps Unix?

551voto

Naresh Points 1

Sous Linux, vous pouvez utiliser :

110voto

bb. Points 896

Ruby :

18voto

lost-theory Points 4356

En python, ajoutez les lignes suivantes pour obtenir un horodatage :

1335906993.995389

12voto

davidchambers Points 3048

En Perl :

7voto

Jonathan Leffler Points 299946

Tout d'abord, la Unix "époque" ou zéro heure est 1970-01-01 00:00:00Z (sens de minuit le 1er janvier 1970 dans le Zoulou ou GMT ou UTC) de la zone. Un Unix time stamp est le nombre de secondes depuis ce temps - pas de comptabilité pour les secondes intercalaires.

Générer l'heure actuelle dans le Perl est plutôt facile:

perl -e 'print time, "\n"'

Générer le temps correspondant à une valeur de date/heure est un peu moins facile. Logiquement, vous utilisez l' strptime() fonction de POSIX. Cependant, le Perl POSIX::strptime module (qui est séparé du module POSIX) a la signature:

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) = 
                                     POSIX::strptime("string", "Format");

La fonction mktime dans le module POSIX a la signature:

mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)

Donc, si vous connaissez le format de vos données, vous pouvez écrire une variante:

perl -MPOSIX -MPOSIX::strptime -e \
    'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X