我有一个带有毫秒值的文件,例如“1366535578”,我需要将其转换为datetime。在python我可以这样做
import datetime
print datetime.datetime.fromtimestamp(1366535578)
如何在perl中实现它以“20130421181258”格式显示
任何帮助表示赞赏。
答案 0 :(得分:2)
毫秒实际上表示持续时间而不是时间。
您可以使用:
use POSIX qw( strftime );
my $formatted = strftime("%Y%m%d%H%M%S", localtime($ts/1000));
字符串strftime
是你的毫秒字符串。
这会为您提供YYYY-mm-dd hh:mm:ss
格式,如果您希望您可以移除hipns以获取您的格式或安排它到达您的格式。
注意:删除格式字符串中的hiphens和冒号。
答案 1 :(得分:2)
核心Time::Piece
模块将为您完成此操作。它会覆盖内置的localtime
函数,因此它具有strftime
方法:
use Time::Piece;
print localtime(1366535578)->strftime('%Y%m%d%H%M%S');
<强>输出强>
20130421101258
答案 2 :(得分:1)
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,'');