2009-03-02 22 views
2

WebサービスがPerlでJSON形式で受け取っているこの日付形式を解析するにはどうすればよいですか?私は、DateTimeオブジェクトに変換したい:PerlでJSONの日付形式を解析するにはどうすればよいですか?

Date(1216647000000-0400) 

私はそれがタイムゾーンオフセットと一緒にエポックからのミリ秒であったと仮定が、日付は遠く離れています。

+0

はどのような方法オフ日付ですか? JSONの日付とその値の例を挙げることができますか? – ysth

答えて

7

時間は、エポックからのミリ秒単位で表示されます。エポック秒を得るために1000で割る。

あなたが遭遇した、これは他のケースで動作していることを確認してください:

use DateTime; 

my $json_date = 'Date(1216647000000-0400)'; 
if ($json_date =~ m{ \b (\d+) \b ([+-]\d\d\d\d\b)? }x) { 
    my ($epoch_milliseconds, $time_zone) = ($1, $2); 
    my $dt = DateTime->from_epoch(epoch => $epoch_milliseconds/1000); 
    if ($time_zone) { 
     $dt->set_time_zone($time_zone); 
    } 
    print $dt->datetime; 
} 
+0

\ bは\ d +と[+ - ]の間で重複しています。私は2番目と3番目の\ bを削除し、最後に1つ追加します。 – ysth

関連する問題