首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间戳格式

问时间戳格式
EN

Stack Overflow用户
提问于 2019-09-10 02:30:28
回答 3查看 84关注 0票数 1

全,

我将解析日志文件,它的格式如下:

代码语言:javascript
复制
2019-09-06T16:06:36+00:00 some_text

现在我想知道的是如何处理+符号之后的数字。我可以用“”字符拆分行来获得时间戳,然后用T拆分时间戳,但是Perl中的日期/时间函数能理解16:06:36+00:00时间吗?我需要将它传递给timelocal()以获取一个纪元时间。

蒂娅!

EN

回答 3

Stack Overflow用户

发布于 2019-09-10 03:27:42

冒号是多余的,并且会阻碍您的解析。不久前在Python bug跟踪器中有一个关于用冒号解析时区偏移量的讨论,但这个问题从未真正得到解决。最简单的解决方案就是去掉它:

代码语言:javascript
复制
use Time::Piece; # A core Perl module.

my $entry = '2019-09-06T16:06:36+00:00 some_text';

my ($timestamp, $text) = split(/\s+/, $entry, 2);
$timestamp =~ s/:(\d+)$/$1/;

my $t = Time::Piece->strptime($timestamp, "%Y-%m-%dT%T%z");

在本例中,我们在第一个空格上拆分以隔离日期戳,然后替换掉最后一个冒号。因此,$timestamp现在将包含:

代码语言:javascript
复制
2019-09-06T16:06:36+0000

...and,它是strptime可以理解的时间戳,给定适当的格式字符串。

票数 5
EN

Stack Overflow用户

发布于 2019-09-10 05:24:07

您所拥有的是一个RFC3339时间戳。因此,您可以使用DateTime::Format::RFC3339。

代码语言:javascript
复制
use DateTime::Format::RFC3339 qw( );

my ($dt_str) = split ' ', '2019-09-06T16:06:36+00:00 some text';

my $format = DateTime::Format::RFC3339->new;
my $dt = $format->parse_datetime($dt_str);
my $epoch = $dt->epoch;

您所拥有的是一个ISO8601时间戳。因此,您可以使用DateTime::Format::ISO8601。

代码语言:javascript
复制
use DateTime::Format::ISO8601 qw( );

my ($dt_str) = split ' ', '2019-09-06T16:06:36+00:00 some text';

my $format = DateTime::Format::ISO8601->new;
my $dt = $format->parse_datetime($dt_str);
my $epoch = $dt->epoch;
票数 2
EN

Stack Overflow用户

发布于 2019-09-10 03:46:48

Time::Moment的from_string构造函数可以识别这种ISO8601格式,即使有冒号也是如此。

代码语言:javascript
复制
use strict;
use warnings;
use Time::Moment;

my $line = '2019-09-06T16:06:36+00:00 some_text';
my ($ts, $rest) = split ' ', $line, 2; # single space is a special case for split()
my $moment = Time::Moment->from_string($ts);
my $epoch = $moment->epoch;

如果格式是混合的(例如,偏移量中的冒号,而不是时间),则可能需要选项lenient => 1。

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

https://stackoverflow.com/questions/57859440

复制
相关文章

相似问题

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