2011-01-17 7 views
3

正しい形式で日付を渡しても、このコードの出力は常に偽になります。助けてください... ここで渡される2つのパラメータは時間と形式です。 HHMMSS "フォーマット)。HHMMSS形式でのC#時間検証の実行方法

static bool ValidateTime(string time, string format) 
    { 
     try 
     { 
      //time = time.Replace(":",""); 
      System.Globalization.DateTimeFormatInfo tinfo = new System.Globalization.DateTimeFormatInfo(); 

      tinfo.LongTimePattern = format; 

      DateTime dt = DateTime.ParseExact(time, "format", tinfo); 
      if (dt.Hour != null) 
      { 

      } 
      return true; 
     } 
     catch (Exception e) 
     { 

      return false; 
     } 
    } 
+0

それはhttp://stackoverflow.com/questions/4710455/i-need-code-to-validate-any-time-in-c-in-hhmmss-formatの重複だ – bniwredyc

+1

で "MM"フォーマット文字列は** months ** - 分ではありません。大文字と小文字が区別されます。分の場合は「mm」を使用してください。 –

+0

ソリューションを受け入れるのはなぜですか?他の人が簡単に解決策を見つけることは簡単です。 – Sampath

答えて

10
static bool ValidateTime(string time, string format) 
{ 
    DateTime outTime; 
    return DateTime.TryParseExact(time, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out outTime); 
} 

あなたは24時間の時間を検証するために、 "HHMMSS" 形式の文字列を使用する必要があることを覚えておいてください。

Custom Date and Time Format Strings (MSDN)

+0

非常にありがとうございました... – user578104

2

次のコードが機能します。ちょっと微調整してメソッドシグネチャを追加する必要があります。

string time = "201555"; 
string format = "HHmmss"; 
bool ok = false; 

try 
{ 
    System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture; 
    DateTime dt = DateTime.ParseExact(time, format, provider); 
    if (dt.Hour != null) 
    { 
     ok = true; 
    } 
} 
catch (Exception e) 
{ 
    //// ok = false; // already setup in initializer above. 
} 
+0

ありがとうございます非常に.....それは働いています。 – user578104

関連する問題