我正在使用DateTime Perl模块来获取特定时区的时间。时间的结果如下
2010-09-24T02:18:52
如何在打印前将其转换为HTTP格式?
答案 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
(为清晰起见,删除了行号。)