如何使用strptime()函数解析日期/时间格式?
要转换的数据/时间格式为: 例如周二1月16日11:18:20 + 000 2018
答案 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
加载的时间结构的时间成分转换为字符串描述。