欢迎来到山村网

讲Perl中的本地时间与UNIX时间戳间相互转换的方法

2019-03-02 13:58:28浏览:663 来源:山村网   
核心摘要:  这篇文章主要介绍了讲Perl中的本地时间与UNIX时间戳间相互转换的方法,主要用到了Perl中的Date::Parse模块,需要的朋友可以参

  这篇文章主要介绍了讲Perl中的本地时间与UNIX时间戳间相互转换的方法,主要用到了Perl中的Date::Parse模块,需要的朋友可以参考下

  当你的Perl脚本需要解决时间信息,这里有两种方法来表示和处理日期和时间。一种方法是易读的时间表示(例,"Sat Mar 14 10:14:05 EDT 2015"),另外一种是使用UNIX时间戳(也叫“新纪元时间”),这是从1970年1月1日到今所经过的时间秒数。每一种方法都有它自己的优劣势,取决于你的需要,也许也就需要转换一种格式到另一种。

  Perl中转换本地时间到UNIX时间戳

  为了从日期字符串中获得UNIX时间,可以使用Date::Parse模块中str2time()函数。此函数可以处理多种格式,例如:

  ?

1 2 3 4 5 6 7 8 9 Sat Mar 14 10:14:05 EDT 2015 3/14/2015 10:14:05 -0400 14/Mar/15 10:14:05 14 Mar 15 10:14:05 use Date::Parse; my $local_time = "Sat Mar 14 10:14:05 EDT 2015"; # 1426342445 will be stored in $unix_time my $unix_time = str2time($local_time);

  Date:Parse 模块支持多种语言(英语,法语,德语和意大利语)和时区。例如:

  ?

1 2 3 4 use Date::Parse; use Date::Language; my $lang = Date::Language->new('French'); my $unix_time = $lang->str2time("12:14:05, Ago 16, 2014 (CEST)");

  Perl中UNIX时间戳到易读的日期和时间

  如果你想要转换UNIX时间戳到易读的格式,可以使用localtime()函数,此函数可以转换UNIX时间戳为一个9元素列表。然后你可以使用返回的list构造任何你需要的可读格式。这里有一个代码片段:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 # $sec, $min, $hour: 秒,分,时 # $mday: 月中的某天 (0-31) # $mon: 月份,范围 0 (一月) 至 11 (十二月) # $year: 年份,与1900年的差值(2015年为2015-1900=115) # $wday: 星期,范围 0 (星期天) 至 6 (星期六) # $yday: 年中的某天,范围 0 至 364 (或 365 闰年) # $isdst: 是否是夏令时 my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($unix_timestamp); # necessary conversion of $mon and $year $mon += 1; $year += 1900; print "Current time: $year-$mon-$mday $hour:$min:$secn";
(责任编辑:豆豆)
下一篇:

Java中break、continue、return语句的使用区别对比

上一篇:

Java中接口和抽象类的区别与相同之处

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com