UNIX時間をYYYYMMDDHHMMSSに変換するサンプルコードを紹介します。
以下のサンプルコードはUNIX時間を年月日時分秒に変換し出力します。
GMTとローカル時間を表示するようになっています。
#!/usr/bin/perl
use strict;
use warnings;
if ( @ARGV != 1 ) {
die "Usage:\n\t$0 UNIX-TIME\n";
}
my $unix_time = shift;
my ($sec, $min, $hour, $mday, $mon, $year);
($sec, $min, $hour, $mday, $mon, $year) = gmtime($unix_time);
$year += 1900;
$mon += 1;
printf("GMT:\t%04d/%02d/%02d %02d:%02d:%02d\n", $year ,$mon, $mday, $hour, $min, $sec);
($sec, $min, $hour, $mday, $mon, $year) = localtime($unix_time);
$year += 1900;
$mon += 1;
printf("LOCAL:\t%04d/%02d/%02d %02d:%02d:%02d\n", $year ,$mon, $mday, $hour, $min, $sec);
UNIX標準時間として0を指定すると以下のような出力になります。
動作させたマシンのロケールがJSTなのでローカル時間は標準時+9時間となっていることが確認できます。
$ ./timet_conv.pl 0 GMT: 1970/01/01 00:00:00 LOCAL: 1970/01/01 09:00:00
以上、UNIX時間をYYYYMMDDHHMMSSに変換する方法でした。