2012-07-03 16 views
8

Datetime.TryParseメソッドを使用して有効な日時を確認しています。入力された日付文字列は任意の文字列データになります。指定された日付が無効であるためfalseが返されます。有効期限DateTime.TryParseメソッドで確認

DateTime fromDateValue; 
if (DateTime.TryParse("15/07/2012", out fromDateValue)) 
{ 
    //do for valid date 
} 
else 
{ 
    //do for in-valid date 
} 

編集:私は逃しました。私は、有効な日付を「15/07/2012 12:00:00」としてチェックする必要があります。

任意の提案は歓迎されている....

+4

を確認することができます。それを常に心がけてください。 「15/07/2012」はフランスには有効ですが、米国にはありません。 – Kek

+1

MM/DD/YYYY形式を想定しているロケールを使用している場合、15/07/2012は無効な日付です。 – Jason

+1

@Jasonあなたは正しいです、私のロケールはMM/dd/yyyy formateです。したがって、無効です。 – Sujit

答えて

21

あなたは、あなたがサポートしたい可能なフォーマットのコレクションを渡すことができますTryParseExactメソッドを使用することができます。 TryParseメソッドはカルチャに依存しますので、使用する場合は非常に注意してください。例えばので

:あなたはあなたのケースで固定フォーマットを持っているように見えるよう

DateTime fromDateValue; 
string s = "15/07/2012"; 
var formats = new[] { "dd/MM/yyyy", "yyyy-MM-dd" }; 
if (DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDateValue)) 
{ 
    // do for valid date 
} 
else 
{ 
    // do for invalid date 
} 
0

あなたはTryParseExactを使用する必要があります。他の人が言ったようにあなたが

DateTime.ParseExact([yourdatehere], 
        new[] { "dd/MM/yyyy", "dd/M/yyyy" }, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.None); 
0

、あなたがTryParseExactを使用することができるためのような

何かも動作することができます。より多くの情報と時間で使用する場合

、あなたはこれが常に危険なものである...解析は、ユーザの文化に依存MSDN Documentation

関連する問題