如何在Perl中比较不同格式的日期?

Sue*_*ezy 0 perl timestamp

任何人都可以帮我如何将这个日期格式"星期一,2009年8月24日17:00:44 +0800"转换成这样的东西,"2009-08-24 17:00:44"在Perl?我一直在使用CPAN浏览模块,但我仍然无法找到我想要的东西.使用Mail :: POP3Client从电子邮件帐户检索第一种格式.另一个来自数据库中的查询.我的目的是比较这两个日期,但如果它们的格式不同,它将不起作用.有任何建议吗?=)

Dav*_*man 8

我将使用DateTime :: Format :: Strptime将日期转换为DateTime对象,然后要求它提供所需的日期表示.例如:

my $parser = DateTime::Format::Strptime->new(pattern => '%a, %d %b %Y %T %z');
my $dt = $parser->parse_datetime($original_timestamp);

# Postgres-format timestamp for db storage
my $pg_timestamp = DateTime::Format::Pg->format_datetime($dt);

# Epoch timestamp for if I'm going to do the comparison in code
my $epoch = $dt->epoch;
Run Code Online (Sandbox Code Playgroud)