Landscape トップページ | < 前の日 2005-06-26 2005-06-27 次の日 2005-06-29 >

Landscape - エンジニアのメモ 2005-06-27

DateTime.Parse と DateTime.ParseExact の違い


* DateTime.Parse と DateTime.ParseExact の違い

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [.net] [C#]

日付を表現する文字列をパースして DateTime 構造体を作ってくれる DateTime.Parse()と DateTime.ParseExact() について。

書式が決まってるんだったら、速度が速くて厳密な ParseExact() 使えとのこと。あー、私はずっと Parse() 使ってたよ。

Figures
http://www.microsoft.com/japan/msdn/msdnmag/issues/05/03/Cul ...
Parse と ParseExact の比較

  文字列を解析するためのメソッドとして、Parse と ParseExact の 2 つが用意されています。Parse メソッドの機能は COM に根差しており (COM 自体は旧バージョンの Visual Basic に根差しています)、処理コストの程度にかかわらず文字列から日付への変換が行われました。不適切な文字列解析を行うことのリスクは、処理に悪影響が伴うことにあります。この悪影響の 1 つは、dd/mm/yy や mm/dd/yy の日付書式を指定する場合に明らかとなります。Microsoft .NET Framework に用意されている DateTime.Parse メソッドは、以前のメソッドとほぼ同じ目的に使用されますが、残念なことに以前と同じ問題をいくつか抱えています。余分なチェックが行われるため処理に時間がかかり、正しく検出されない新しい書式は今後も常にいくつか存在します。覚えているかもしれませんが、こうした動作を "邪悪な日付解析" と侮蔑的に呼ぶことがありました。
  一方、DateTime.ParseExact メソッドは、DateTimeFormatInfo オブジェクトで指定された正しい書式を受け取り、その書式を使用して処理を行うだけです。書式に一致しないデータが処理されることはありません。また、余分なスペースを許容するかどうかを巡る興味深い議論がマイクロソフト社内で行われています。簡単に言うと、ParseExact メソッドの目的は、"書式があり、その書式が設定された文字列がある場合に、解析を実行する" という流れに沿っています。ParseExact を使用することで処理速度が高速化され、セマンティックとしてもより正確になります。そのため、DateTime.Parse メソッドの柔軟性が不必要な場合には ParseExact メソッドを使用することを強く推奨します。

多機能な CultureInfo クラスを利用して .NET の世界を身近なものにする から。
http://d.hatena.ne.jp/atsushieno/20050625/p1

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。