首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Perl中将ISO8601时间戳转换为unix时间?

问如何在Perl中将ISO8601时间戳转换为unix时间?
EN

Stack Overflow用户
提问于 2010-06-25 04:05:49
回答 2查看 6.6K关注 0票数 6

给定一个以ISO8601格式(例如20100723T073000)表示日期/时间的字符串,我最终需要使用一个通用的strftime格式字符串将其解析为用户提供的格式。为此,我需要将ISO8601时间戳转换为Unix时间戳。Perl有大量的日期/时间操作模块,我有点不知所措。对如何做到这一点有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-25 04:51:05

处理日期、时间、持续时间、时区和格式的冠军模块是DateTime。一旦获得了DateTime对象,就可以对其执行大量操作,比如增加/减少其他DateTime对象或DateTime::Duration对象,或者以另一种格式打印出来。

代码语言:javascript
复制
use strict; use warnings;
use DateTime;
use DateTime::Format::ISO8601;

my $dt = DateTime::Format::ISO8601->parse_datetime('20100723T073000');

print $dt->strftime('%F %T');

照片:"2010-07-23 07:30:00“

票数 12
EN

Stack Overflow用户

发布于 2013-12-01 05:09:38

如果您没有或不想安装DateTime::Format::ISO8601模块,则可以使用HTTP::Date解析至少一部分ISO8601

代码语言:javascript
复制
$ perl -MHTTP::Date -wle 'print str2time("2013-11-30T23:05:03")'
1385845503

与任何日期处理一样,请谨慎处理时区问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3113487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档