如何使用strptime()函数解析日期/时间格式?

时间:2018-10-18 15:42:10

标签: shell perl

如何使用strptime()函数解析日期/时间格式?

要转换的数据/时间格式为: 例如周二1月16日11:18:20 + 000 2018

1 个答案:

答案 0 :(得分:0)

strptime的手册页显示了API详细信息以及C的示例。

在Perl中,Time::Piece模块(属于Perl核心)提供了strptime函数。示例包含在模块的文档中。

例如,此Perl代码段会将日期格式转换为ISO 8601表示法:

#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
my $t = Time::Piece->strptime
    ("Tue Jan 16 11:18:20 +0000 2018", "%a %b %d %H:%M:%S %z %Y");
print $t->strftime("%Y-%m-%dT%H:%M:%S\n");

...产生输出:

2018-01-16T11:18:20

产生ISO日期的简便方法很简单:

print $t->datetime, "\n";

因此您可以由此获得相应的纪元秒数:

print $t->epoch, "\n";

因此,strptime根据第二个参数中各个段的定义,将时间描述的字符串(第一个参数)转换为其组件。 strftime是相反的操作,它将strptime加载的时间结构的时间成分转换为字符串描述。