まず、Unixの「エポック」またはゼロ時間は1970-01-01 00:00:00Zです(1970年1月1日の真夜中はズールー語またはGMTまたはUTCタイムゾーンを意味します)。Unixタイムスタンプは、その時からの秒数であり、うるう秒は考慮されていません。
Perlで現在時刻を生成するのはかなり簡単です。
perl -e 'print time, "\n"'
与えられた日付/時刻の値に対応する時刻を生成することは、それほど簡単ではありません。論理的には、strptime()
POSIX の関数を使用します。ただし、Perl POSIX :: strptimeモジュール(POSIXモジュールとは別)のシグネチャは次のとおりです。
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
mktime
POSIXモジュールの関数にはシグネチャがあります:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
したがって、データの形式がわかっている場合は、次のようにバリアントを記述できます。
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'