我有一些Unix时间戳(例如,1357810480,所以它们主要是过去的)。我如何使用Perl将它们转换为可读的日期格式?将Unix时间戳转换为Perl中的可读日期
回答
您可以使用localtime
。
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($unix_timestamp);
你可以使用
my ($S, $M, $H, $d, $m, $Y) = localtime($time);
$m += 1;
$Y += 1900;
my $dt = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $Y,$m, $d, $H, $M, $S);
但它与strftime
简单一些:
use POSIX qw(strftime);
my $dt = strftime("%Y-%m-%d %H:%M:%S", localtime($time));
localtime($time)
可以gmtime($time)
如果是比较合适的替代。
Time::Piece(从5.10起的Perl中的标准)的完美用法。
use 5.010;
use Time::Piece;
my $unix_timestamp = 1e9; # for example;
my $date = localtime($unix_timestamp)->strftime('%F %T'); # adjust format to taste
say $date; # 2001-09-09 02:46:40
''%f%T''不适用于我(也许是因为我的区域设置),但'%Y%m-%d''确实有效。 – 2017-08-27 02:44:28
快速壳的一行:
perl -le 'print scalar localtime 1357810480;'
Thu Jan 10 10:34:40 2013
或者,如果你碰巧有时间戳的文件,每行一个:
perl -lne 'print scalar localtime $_;' <timestamps
优雅而简单 – 2013-10-22 17:00:48
这应该是被接受的答案。其他人可以在人们希望在他们的日期更深入时使用。只是看一个时间戳,'标量本地时间',完成。 – felwithe 2016-03-30 21:09:41
或者,如果你有一个带有嵌入时间戳的文件,您可以将其转换为:
$ cat [file] | perl -pe 's/([\d]{10})/localtime $1/eg;'
这正是我需要的!我可以将我的日志文件输入到perl单线程和BINGO即时日期/时间。 – rob 2015-09-11 14:41:10
我喜欢JDawg的回答,但无法在我正在研究的RHEL系统上正常工作。我能够得到这个工作。希望这会帮助某人。它显示转换后的时间戳文件的内容。
cat filename | perl -pe 's/(\d+)/localtime($1)/e'
- 1. 将SAS日期时间转换为SAS中的UNIX时间戳
- 2. PHP日期转换为unix时间戳
- 3. 将时间戳转换为可读的日期/时间PHP
- 4. 在查询期间将时间戳转换为可读日期
- 5. 将unix时间戳转换为laravel中的人类可读日期
- 6. 在PHP中将unix时间戳转换为人类可读的日期?
- 7. 将日期和时间转换为UNIX时代时间戳
- 8. 如何使用Perl将日期时间转换为Unix时间戳
- 9. 将日期时间格式转换为Unix时间戳Pandas
- 10. PHP将MySQL日期时间转换为Unix时间戳
- 11. 如何将Unix时间戳转换为AIX 5.3中的可读时间戳
- 12. 如何在MySql中将unix时间戳转换为UTC日期?
- 13. 将Unix时间戳转换为日期为字符串? Swift
- 14. Oracle SQL查询将Unix时间戳转换为Java的日期
- 15. 将真实世界的日期转换为unix时间戳PHP
- 16. 在javascript中将unix日期时间戳转换为特定时区的时间
- 17. 将epoch/unix转换为日期时间
- 18. 将日期字符串转换为Unix时间戳
- 19. 使用Unix将日期转换为时间戳
- 20. 如何使用Twig将日期转换为UNIX时间戳?
- 21. 将MySQL日期转换为unix时间戳。
- 22. Ruby/Rails:将日期转换为UNIX时间戳
- 23. Node.js将日期字符串转换为unix时间戳
- 24. PHP将日期转换为时间戳
- 25. 将EPOCH时间戳转换为日期
- 26. 将日期转换为时间戳
- 27. 将日期转换为jQuery时间戳
- 28. Bash将日期转换为时间戳
- 29. Bash脚本将日期和时间列转换为.csv中的unix时间戳
- 30. 如何将时间戳转换为php中的unix时间戳?
谢谢,但我想存储 – hurley 2013-02-25 10:08:24
是啊,这将使在'$ time'数组。之后,小时在'$ time [2]'例如。 – Andomar 2013-02-25 10:09:31
谢谢,但我想直接在一个变量中存储格式化的日期。你有看到这种可能吗?我的当前解决方案似乎可以保存当前日期,不管给定时间戳的年龄有多大 – hurley 2013-02-25 10:11:05