如何将DateTime对象转换为HTTP格式?

时间:2010-09-24 06:25:07

标签: perl datetime

我正在使用DateTime Perl模块来获取特定时区的时间。时间的结果如下

  

2010-09-24T02:18:52

如何在打印前将其转换为HTTP格式?

1 个答案:

答案 0 :(得分:4)

CPAN满足您的需求:DateTime::Format::HTTP

说明

  

此模块提供处理HTTP协议使用的日期格式(以及更多)的函数。

梗概:

use DateTime::Format::HTTP;

my $class = 'DateTime::Format::HTTP';
$string = $class->format_datetime($dt); # Format as GMT ASCII time
$time = $class->parse_datetime($string); # convert ASCII date to machine time

更新

您可以传入源数据的时区,使用DateTime set_time_zone()更改时区,然后使用 strftime以'HTTP'格式生成字符串。例如:

my $dt = DateTime::Format::HTTP->parse_datetime( '2010-03-09T12:34:56', 'EST' );
warn $class->format_datetime( $dt );
warn $dt->strftime( "%a, %d %b %Y %H:%M:%S %Z" );
$dt->set_time_zone( 'CET' );
warn $dt->strftime( "%a, %d %b %Y %H:%M:%S %Z" );

Tue, 09 Mar 2010 17:34:56 GMT
Tue, 09 Mar 2010 12:34:56 EST
Tue, 09 Mar 2010 18:34:56 CET

(为清晰起见,删除了行号。)