我在特定时区有一个日期时间对象,即“亚洲/东京”。
我使用$dt = DateTime->now(time_zone => 'Asia/Tokyo');
获取此日期时间
其输出格式为YYYY-MM-DD'P'HH:mm:ss
(P
为分隔符)
请帮助使用perl脚本将其转换为datetime到epoch秒。
答案 0 :(得分: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