博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换
阅读量:6487 次
发布时间:2019-06-23

本文共 1410 字,大约阅读时间需要 4 分钟。

Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换

问题: 在Perl语言中,我需要转换易读的日期和时间到对应的UNIX时间戳,反之亦然。你可以给我一些将日期及时间转换到UNIX时间戳的Perl代码例子吗?或者相反,转换UNIX时间戳到可读的日期和时间。

当你的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
 
  1. use Date::Parse;
  2. my $local_time = "Sat Mar 14 10:14:05 EDT 2015";
  3. # 1426342445 will be stored in $unix_time
  4. my $unix_time = str2time($local_time);

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

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

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

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

 
  1. # $sec, $min, $hour: 秒,分,时
  2. # $mday: 月中的某天 (0-31)
  3. # $mon: 月份,范围 0 (一月) 11 (十二月)
  4. # $year: 年份,与1900年的差值(2015年为2015-1900=115)
  5. # $wday: 星期,范围 0 (星期天) 6 (星期六)
  6. # $yday: 年中的某天,范围 0 364 (或 365 闰年)
  7. # $isdst: 是否是夏令时
  8. my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($unix_timestamp);
  9. # necessary conversion of $mon and $year
  10. $mon += 1;
  11. $year += 1900;
  12. print "Current time: $year-$mon-$mday $hour:$min:$sec\n";
原文发布时间:2015-04-08
本文来自云栖合作伙伴“linux中国”

转载地址:http://ikpuo.baihongyu.com/

你可能感兴趣的文章
1. Two Sum - Easy - Leetcode解题报告
查看>>
多线程---同步函数的锁是this(转载)
查看>>
百练 2742 统计字符数 解题报告
查看>>
Ubuntu搜狗输入法候选词乱码
查看>>
js中回调函数写法
查看>>
React native android 最常见的10个问题
查看>>
数据结构和算法
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
linux常用命令-关机、重启
查看>>
iOS开发之调用系统设置
查看>>
javascript 字符串转数字的简便写法
查看>>
Spring中jdbcTemplate的用户实例
查看>>
DecimalFormat 数据格式设置 SimpleDateFormat时间格式的用法介绍 --转载
查看>>
Android 的Margin和Padding属性以及支持的长度单位
查看>>