2017-02-09 7 views
-2

簡単な質問のDateTime書式チェック

値は、下記の二つのフォーマットのいずれかでなければなりません:フォーマット1:YYYY-MM-DD &フォーマット2:YYYY-MM-DD HH:MM 日付値は、のいずれかにない場合適切なエラーメッセージを報告する必要があります。

ヒント?事前に感謝

+1

ができない場合は、例外に –

答えて

1

あなたは、有効な形式でstring[]を使用して、DateTime.TryParseExactを使用することができます:

012このコードでは
string[] formats = new string[] { "yyyy-MM-dd", "yyyy-MM-dd HH:mm" }; 
string s = "2017-12-01 12:23"; 
DateTime date; 
bool converted = DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out date); 

入力日付が有効なフォーマットにあった場合は、convertedで取得し、dateで解析DateTime

1

あなたはtry-catchParseExact()を使用することができます。

string date = "2017-02-01"; 
DateTime dt = default(DateTime); 

try 
{ 
    dt = DateTime.ParseExact(date, new string[] {"yyyy-MM-dd", "yyyy-MM-dd hh:mm"}, CultureInfo.InvariantCulture, DateTimeStyles.None); 
} 
catch (FormatException ex) 
{ 
    //error 
} 

OR

を使用TryParseExact()

string date = "2017-02-01"; 
DateTime dt; 

if (DateTime.TryParseExact(date, new string[] {"yyyy-MM-dd", "yyyy-MM-DD hh:mm"}, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{ 
    //do something and use "dt" variable 
} 
else 
{ 
    //error 
} 
+0

感謝を取得しますが、これらのフォーマットに解析してみてください今、CultureInfoとDateTimeStyles.Which参照のエラーが発生しました。私はそれを追加する必要がありますか? – Anjali

+0

'System.Globalization;を使用して追加します。 –

+0

ありがとうございます:) – Anjali