最近写了两个程序,一个需要生成feed,另一个需要解析feed,其中最让人头疼的就是关于时间的处理。
还好,Perl有相应的module能把绝大多数事情处理好,其核心就是DateTime module。这个类用来表示某个特定的时间,并支持许多基于时间的计算。而许多DateTime::Format::XXX类则将DateTime对象输出为特定的格式,如DateTime::Format::W3CDTF可以输入符合Atom要求的时间格式,如下面的例子:
#!/usr/bin/perl use DateTime; use DateTime::Format::W3CDTF; $now = DateTime->now(time_zone => 'Asia/Shanghai'); $output = DateTime::Format::W3CDTF->format_datetime($now); print $output, "n";
这个程序的输出为:
2007-02-15T14:30:00+08:00
下面的例子是将格式为W3CDTF的日期字符串转换为DateTime实例:
#!/usr/bin/perl use DateTime; use DateTime::Format::W3CDTF; $t = DateTime::Format::W3CDTF->parse_datetime('2007-02-15T14:30:00+08:00');