gpt4 book ai didi

perl - 如何在 Perl 中解析 strftime 格式的字符串?

转载 作者:行者123 更新时间:2023-12-04 23:10:50 27 4
gpt4 key购买 nike

我是 Perl 的新手,我想知道 strftime() 是否有反函数。
看,

use POSIX qw(strftime);
print strftime("%YT%mT%d TTTT%H:%M:%S", localtime)

我得到:2009T08T14 TTTT00:37:02。我怎样才能做相反的操作?从“2009T08T14 TTTT00:37:02”字符串到2009-08-14 00:37:02,知道格式字符串“%YT%mT%d TTTT%H:%M:%S”?

最佳答案

一种选择是使用正则表达式解析数字,然后使用 Time::Local .但是,现在我明白您的问题是如何从 strftime 开始格式化字符串一般到一个时间,那个方法必然是繁琐的。

您在回答中提到 POSIX::strptime如果您的平台支持它,那就太好了。或者,您可以使用 DateTime::Format::Strptime :

#!/usr/bin/perl

use strict;
use warnings;

use DateTime::Format::Strptime;
use POSIX qw(strftime);

my $f = "%YT%mT%d TTTT%H:%M:%S";
my $s = strftime($f, localtime);

print "$s\n";

my $Strp = DateTime::Format::Strptime->new(
pattern => $f,
locale => 'en_US',
time_zone => 'US/Eastern',
);

my $dt = $Strp->parse_datetime($s);

print $dt->epoch, "\n";
print scalar localtime $dt->epoch, "\n";
$dtDateTime对象,所以你几乎可以用它做任何你想做的事情。

关于perl - 如何在 Perl 中解析 strftime 格式的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com