2011-08-11 100 views
0

我在特定时区中有一个日期时间对象,即'亚洲/东京'。 我正在使用$dt = DateTime->now(time_zone => 'Asia/Tokyo'); 这样做的输出格式为YYYY-MM-DD'P'HH:mm:ss这个日期(P是分隔符)如何将日期时间(在特定时区)转换为纪元时间

请perl脚本将其转换为datetime,以划时代秒帮助。

+3

是否'$ DT-> epoch'不适合你? – friedo

回答

4
DateTime->now(time_zone => 'Asia/Tokyo')->epoch 

当然,你会得到相同的结果,不管你指定,如果你使用now哪个时区,这将是一样的time输出。


这些都指向同一个时间(现在):

>perl -MDateTime -E"say time" 
1313046840 

>perl -MDateTime -E"say DateTime->now(time_zone => 'Asia/Tokyo')->epoch" 
1313046840 

>perl -MDateTime -E"say DateTime->now(time_zone => 'America/New_York')->epoch" 
1313046840 

这是指不同的时间:

>perl -MDateTime::Format::Strptime -E"say DateTime::Format::Strptime->new(pattern => '%F %T', time_zone => 'Asia/Tokyo')->parse_datetime('2011-08-11 13:00:00')->epoch" 
1313035200 

>perl -MDateTime::Format::Strptime -E"say DateTime::Format::Strptime->new(pattern => '%F %T', time_zone => 'America/New_York')->parse_datetime('2011-08-11 13:00:00')->epoch" 
1313082000 
+0

@Balaji,新增示例。 – ikegami

相关问题