Qual è l'opposto della funzione localtime in Perl?
Domanda
In Perl, localtime
prende un timestamp Unix e restituisce anno / mese / giorno / ora / min / sec ecc. Sto cercando il contrario di localtime
: Ho le parti e mi piacerebbe creare un timestamp unix da esse.
Soluzione
Altri suggerimenti
Puoi utilizzare la funzione timelocal nel modulo CPAN Time :: Local .
nome
Time :: Local: calcolo efficiente del tempo dall'ora locale e GMT
SINOSSI
$time = timelocal($sec,$min,$hour,$mday,$mon,$year); $time = timegm($sec,$min,$hour,$mday,$mon,$year);
DESCRIZIONE
Questo modulo fornisce funzioni che sono l'inverso del perl incorporato funzioni localtime () e gmtime (). Accettano una data come sei elementi array e restituisce il corrispondente valore del tempo (2) in secondi dal epoca di sistema (mezzanotte, 1 gennaio, 1970 GMT su Unix, per esempio). Questo il valore può essere positivo o negativo, sebbene POSIX richieda solo supporto per valori positivi, quindi date prima del l'epoca del sistema potrebbe non funzionare su tutti sistemi operativi.
Vale la pena disegnare in particolare attenzione alle gamme attese per i valori forniti. Il valore per il giorno del mese è il giorno effettivo (ad es 1..31), mentre il mese è il numero di mesi da gennaio (0..11). Questo è coerente con i valori restituiti da localtime () e gmtime ().
Nota: POSIX :: mktime è un solo un wrapper per la funzione mktime ()
della tua libreria C. Time :: Local è un'implementazione di puro Perl e restituisce sempre risultati corrispondenti al localtime
di Perl. Inoltre, Time :: Local offre gmtime
, mentre mktime
funziona solo nell'ora locale. (Bene, potresti provare a cambiare $ ENV {TZ}
, ma ciò non funziona su alcuni sistemi.)
DateTime su CPAN potrebbe essere di qualche utilità. Ha anche un lotto di metodi di manipolazione / traduzione del tempo.
Crea il DateTime usando le tue parti e chiama $ datetime- > formatter ("% s ");