6

ISO8601 形式 (例: 20100723T073000) で日付/時刻を表す文字列が与えられた場合、最終的には、一般的な形式文字列を使用して、これをユーザー指定の形式に解析する必要がありstrftimeます。そのためには、ISO8601 タイムスタンプを Unix タイムスタンプに変換する必要があります。Perl には膨大な量の日付/時刻操作モジュールがあり、私は少し圧倒されています。これを行う方法に関する提案はありますか?

4

2 に答える 2

12

日付、時刻、期間、タイムゾーン、および形式を処理するためのチャンピオン モジュールはDateTimeです。DateTime オブジェクトを取得したら、他の DateTime オブジェクトまたはDateTime::Durationオブジェクトの加算/減算、または別の形式での出力など、膨大な数の操作を実行できます。

use strict; use warnings;
use DateTime;
use DateTime::Format::ISO8601;

my $dt = DateTime::Format::ISO8601->parse_datetime('20100723T073000');

print $dt->strftime('%F %T');

プリント: "2010-07-23 07:30:00"

于 2010-06-24T20:51:05.437 に答える