文字列を.netの日付に変換する


8

私はC#でフラットファイルからテキストを読み込み、特定の値が日付であるかどうかをテストする必要があります。 YYYYMMDD形式またはMM/DD/YY形式のいずれかにすることができます。 .Netでこれを行う最も簡単な方法は何ですか? ParseExactTryParseExact上のMSDNドキュメントの

26
string[] formats = {"yyyyMMdd", "MM/dd/yy"}; 
var Result = DateTime.ParseExact(input, formats, CultureInfo.CurrentCulture, DateTimeStyles.None); 

または

DateTime result; 
string[] formats = {"yyyyMMdd", "MM/dd/yy"}; 
DateTime.TryParseExact(input, formats, CultureInfo.CurrentCulture, DateTimeStyles.None, out result); 

詳細情報。

  0

これは私より優れています。あなたはフォーマットのための文字列配列を行うことができるか分からなかった。非常に素晴らしい! 23 9月. 082008-09-23 19:42:00

  0

さらに良い!ちょうど私が必要なもの。 23 9月. 082008-09-23 19:57:04

  0

DateTime.TryParseExact(...)の戻り値が正しいかどうかを確認できる唯一の方法であることを確認してください。 24 9月. 082008-09-24 00:11:22


3

DateTime.TryParse方法

  0

私はあなたの答えを編集することができないので、私はそのメソッドのMSDN記事へのリンクを提供するのに役立つかもしれないと思った。 http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx 23 9月. 082008-09-23 19:39:50

  0

[@Yadyn]:IntelliSenseで十分だろうと思ったが、大丈夫だった。 25 9月. 082008-09-25 18:38:24


0

また、それが失敗した場合TryParseを使用して


0

のいずれかの利点が例外をスローしませんConvert.ToDateTime

わからない行うことができます。また、TryParseは変換の成功を示すTrue/Falseを返します。あなたが設定され、正確な形式にもTryParseExactを試みることができる


3

よろしく...。 http://msdn.microsoft.com/en-us/library/ms131044.aspx

など、 メソッドです。

DateTime outDt; 
bool blnYYYMMDD = 
    DateTime.TryParseExact(yourString,"yyyyMMdd" 
          ,CultureInfo.CurrentCulture,DateTimeStyles.None 
          , out outDt); 

私はあなたを助けてくれることを願っています。

  0

おい!それは非常に便利です、私はどこかでそれをやったことが分かっていますが、これで約1時間は失ってしまいました。 31 3月. 092009-03-31 08:46:31


0

TryParseメソッドを使用して、有効性とパーズを同時に確認できます。

DateTime output; 
string input = "09/23/2008"; 
if (DateTime.TryParseExact(input,"MM/dd/yy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out output) || DateTime.TryParseExact(input,"yyyyMMdd", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out output)) 
{ 
    //handle valid date 
} 
else 
{ 
    //handle invalid date 
}