「1366535578」などのミリ秒の値を持つファイルがあり、これを日時に変換する必要があります。Pythonでは、以下のようにできます
import datetime
print datetime.datetime.fromtimestamp(1366535578)
「20130421181258」の形式で表示されるように、perlでどのように達成できますか
どんな助けでも感謝します。
「1366535578」などのミリ秒の値を持つファイルがあり、これを日時に変換する必要があります。Pythonでは、以下のようにできます
import datetime
print datetime.datetime.fromtimestamp(1366535578)
「20130421181258」の形式で表示されるように、perlでどのように達成できますか
どんな助けでも感謝します。
コアTime::Piece
モジュールがこれを行います。メソッドlocaltime
を持つように組み込み関数をオーバーライドします。strftime
use Time::Piece;
print localtime(1366535578)->strftime('%Y%m%d%H%M%S');
出力
20130421101258
ミリ秒は実際には時間ではなく期間を表します。
これを使用できます:
use POSIX qw( strftime );
my $formatted = strftime("%Y%m%d%H%M%S", localtime($ts/1000));
文字列strftime
はミリ秒文字列です。
これにより、YYYY-mm-dd hh:mm:ss
フォーマットが得られます。必要に応じて、ハイフンを削除してフォーマットを取得したり、フォーマットを調整したりできます。
注:フォーマット文字列からハイフンとコロンを削除しました。
my @date = localtime(time);
$date[5] += 1900;
$date[4] += 1;
$date[2] = '0'.$date[2] if ($date[2] < 10);
$date[1] = '0'.$date[1] if ($date[1] < 10);
$date[4] = '0'.$date[4] if ($date[4] < 10);
$date[3] = '0'.$date[3] if ($date[3] < 10);
print join(@date,'');