Her şeyden önce, Unix 'dönemi' veya sıfır zamanı 1970-01-01 00: 00: 00Z'dir (Zulu veya GMT veya UTC saat diliminde 1 Ocak 1970'in gece yarısı anlamına gelir). Unix zaman damgası, o zamandan bu yana geçen saniye sayısıdır - artık saniye olarak hesaplanmaz.
Perl'de şu anki saati oluşturmak oldukça kolay:
perl -e 'print time, "\n"'
Belirli bir tarih / saat değerine karşılık gelen zamanı oluşturmak daha az kolaydır. Mantıksal olarak, strptime()
POSIX işlevini kullanırsınız . Ancak Perl POSIX :: strptime modülünün (POSIX modülünden ayrı) imzası vardır:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
mktime
POSIX modülündeki işlevin imzası vardır:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
Dolayısıyla, verilerinizin biçimini biliyorsanız, aşağıdakilere bir değişken yazabilirsiniz:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'