2015-10-13 5 views
6

私は国際的なアプリケーションのためにdatetime文字列を解析する作業を行ってきました。私は決定的な答えを見つけることができないような解釈の問題にぶつかっています。 タイムゾーンコンポーネントのないISO 8601日時文字列を現地時間として扱うべきですか?(私はのオフに私のビジネス上の意思決定をベースにしたくない)wikipediaパータイムゾーンコンポーネントなしのDateTime ISO 8601

何UTC関係情報は、時間の表現で指定されていない場合、 時間がローカルであると想定されます時間。

しかし、私はISOその他の一般的に受け入れられる真実の情報源を使って、裏付文書を見つけることができません。私が見つけたものはすべて、現地時間のオフセット(たとえば+/- 0500など)を処理する方法について話しています。これらのケースで現地時間を仮定すると、各地域の特定のオフセットを計算する必要なく、ユーザーがすべての地域で同じ日付を提出できるようになり、実質的に役立ちます。例えば

2012-01-01T00:00:00 # Convert to local 
2012-01-01T00:00:00Z # Zulu/UTC...don't convert 

は、タイムゾーンレスISO 8601個の文字列のための確立された解釈がありますか?

答えて

6

ISO 8601のセクション4.2.2には、現地時間であることを示すTZ指名係がいない例が示されています。 4.2.4では、UTC時刻に 'Z'記号を使用しています。もちろん、それは常に "現地時間?"という質問を発生させます。

+0

恐ろしく、これは私が探していたものです。 ISO文書が無料で公開されているわけではないので、私は初めてそれを逃したのです。とにかくそれをアップロードする人々を賛美してください:) "where"アスペクトがすでに処理されているように、リージョンを指定する固有の属性がユーザー入力にあります。 – Devin

0

タイムゾーン指定子がないと、datetime文字列はローカルタイムとして解釈されますが、SERVERのローカルタイムとして解釈されます。

ユーザーが異なるタイムゾーンにいる場合、TZ情報なしで送信した日付は、ローカルTZオフセットで誤って解釈されます。

関連する問題