En primer lugar, el Unix 'época' o tiempo cero es 1970-01-01 00: 00: 00Z (es decir, la medianoche del 1 de enero de 1970 en la Zulu o Huso horario GMT o UTC). Una marca de tiempo de Unix es la cantidad de segundos transcurridos desde ese momento, sin contar los segundos intercalares.
Generación de la hora actual en Perl es bastante fácil:
perl -e 'print time, "\n"'
Generando el tiempo que corresponde a un valor de fecha/hora dado es bastante menos fácil. Lógicamente, usa la función strptime()
de POSIX. Sin embargo, el Perl POSIX :: módulo strptime (que está separado del módulo de POSIX) tiene la firma:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
La función mktime
en el módulo de POSIX tiene la firma:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
lo tanto, si usted conoce el formato de sus datos, puede escribir una variante en:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'
Hice una herramienta en línea hace algún tiempo. https://quickhash.com/timestamp –
@ A.B.Carroll ¿Puede explicarnos por qué su herramienta en línea proporciona las marcas de tiempo de Unix? Por favor, adjunte un manual, etc. Parece proporcionar una gran cantidad de datos, pero realmente no puedo seguir cuál es el objetivo. –
'gettimeofday' es el nombre de sistema POSIX y Linux: https://stackoverflow.com/questions/11765301/how-do-i-get-the-unix-timestamp-in-c-as-an-int/11765379# 11765379 TODO: ¿por qué 'strace date +% d' no lo llamas? –