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

 更新时间:2015年06月06日 10:41:33   作者:Dan Nanni  
这篇文章主要介绍了讲Perl中的本地时间与UNIX时间戳间相互转换的方法,主要用到了Perl中的Date::Parse模块,需要的朋友可以参考下

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

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

  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 模块支持多种语言(英语,法语,德语和意大利语)和时区。例如:

  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构造任何你需要的可读格式。这里有一个代码片段:

  # $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:$sec\n";

相关文章

  • perl的cgi高级编程介绍

    perl的cgi高级编程介绍

    本文为大家介绍perl的cgi高级编程方面的知识,供大家学习参考
    2013-02-02
  • perl文件读取的几种处理方式小结

    perl文件读取的几种处理方式小结

    perl打开文件后,可以有几种方式对文件进行读取处理(根据文件大小,文件内容的特征和其它要处理的方式)
    2013-02-02
  • Perl字符串处理函数大全

    Perl字符串处理函数大全

    本文重点讨论Perl字符串处理函数的用法,每种函数都有各自的特点和作用,需要的朋友可以参考下
    2017-09-09
  • perl获取日期与时间的实例代码

    perl获取日期与时间的实例代码

    perl获取日期与时间的例子,供大家学习参考
    2013-02-02
  • perl大文件读取处理的模块介绍

    perl大文件读取处理的模块介绍

    perl CPAN中有一个Tie-File 模块极大方便了对大文件的操作
    2013-02-02
  • perl 交叉编译详解

    perl 交叉编译详解

    Perl设计的初衷是为了更好地处理文本处理任务,但随着时间的发展,现在它已经变成了一种强大的一般目的编程语言,Perl是一种高级、通用、解释型、动态的编程语言,本文给大家介绍perl 交叉编译的相关知识,感谢的朋友跟随小编一起看看吧
    2024-04-04
  • Perl中的列表和数组学习笔记

    Perl中的列表和数组学习笔记

    这篇文章主要介绍了Perl中的列表和数组学习笔记,本文讲解了列表、数组--列表的存贮、数组的存取、字符串中的方括号和变量替换、列表范围、数组的输出等内容,需要的朋友可以参考下
    2015-02-02
  • 7个perl数组高级操作技巧分享

    7个perl数组高级操作技巧分享

    这篇文章主要介绍了7个perl数组高级操作技巧,本文讲解了数组去重、数组合并、查找最大值、列表归并等内容,需要的朋友可以参考下
    2014-11-11
  • 一篇文章搞懂:词法作用域、动态作用域、回调函数及闭包

    一篇文章搞懂:词法作用域、动态作用域、回调函数及闭包

    这篇文章主要给大家介绍了如何通过一篇文章搞懂:词法作用域、动态作用域、回调函数及闭包的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-12-12
  • Perl 字符串处理备忘录

    Perl 字符串处理备忘录

    Perl字符串处理学习备忘录,包括chop和chomp函数、getc函数、拼接字符串、分割字符串、重复拼接字符串、字串替换等。有需要的朋友,可以参考下
    2013-02-02

最新评论