[C#,日付]ISO8601形式の文字列と、DateTime型の相互変換を行う方法

C#で時刻情報を管理する場合、DateTime型がよく利用されます。
一方、ログファイルなどで日付を文字列として表記する際、ISO8601形式で表現することがあります。


このISO8601形式というのは日付と時刻の表記に関する国際規格で、以下のようなフォーマットです。

2011-02-26T23:59:59Z


※厳密に言うと、規格上は他にも曜日表記を付け加えるなどのバリエーションがありますが、本記事では最もポピュラーな上記の書式のみを取り扱います。



この、ISO8601形式の文字列と、C#で用意されているDateTime型は、
以下のコードで相互変換を行えます。

DateTime dtData;
string strData;
 
// DateTime型→ISO8601形式の文字列
string strData = dtData.ToString( "yyyy-MM-dd'T'HH:mm:ss'Z'" );
 
// ISO8601形式の文字列→DateTime型
dtData = DateTime.Parse( strData,  null, System.Globalization.DateTimeStyles.RoundtripKind );




ちなみに、このフォーマットは国際規格上はISO8601ですが、JIS規格では”JIS X 0301″として定義されています(内容は同じです)。

関連記事

コメントを残す

メールアドレスが公開されることはありません。