2011-08-11 13 views
0

特定のタイムゾーン、つまり「アジア/東京」にdatetimeオブジェクトがあります。 私は日時(特定のタイムゾーン)をエポック秒に変換する方法

秒エポック日時にこれを変換するためのPerlスクリプトを使って助けてください(Pが区切り文字である)、このの出力はフォーマットYYYY-MM-DD'P'HH:mm:ssである$dt = DateTime->now(time_zone => 'Asia/Tokyo'); を使用して、この日時を取得しています。

+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

関連する問題