2012-03-31 12 views
1

string to datetime変換のmsdnの例が見つかりました。しかし、それは仕事をしません、キャッチに落ちる()。なぜこのコードブロックが機能しないのですか?String to Datetimeは変換できません - C#

DateTime dateValue; 
     string dateString = "2/16/2008 12:15:12 PM"; 
     try { 
     dateValue = DateTime.Parse(dateString); 
     Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue); 
     } 
     catch (FormatException) { 
     Console.WriteLine("Unable to convert '{0}'.", dateString); 
     } 

答えて

5

あなたは、日付/時刻形式の現在の文化のアイデアがあるものは何でも使っている - と私の推測では、あなたが一日は、通常、月の前に、培養中だということです。

あなたはフォーマットを知っていれば、私は一般的に不変の文化とTryParseExactを使用したい - 確かにはない使用Parseとcatchブロックを行います。 TryParseExactまたはTryParseを使用してください。この場合は:あなたはは、入力フォーマットを知らないが、あなたが使用する文化を知って

if (DateTime.TryParseExact(dateString, "M/d/yyyy hh:mm:ss tt", 
          CultureInfo.InvariantCulture, 0, out dateValue)) 
{ 
    Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue); 
} 
else 
{ 
    Console.WriteLine("Unable to convert '{0}'.", dateString); 
} 

場合、私はちょうど適切な文化とDateTime.TryParseを使用すると思います。

+0

を私は文化がエラーの影響であることを知らなかった、どうもありがとう、私は答えを得ました – Merve

1

は、この例のように適切な形式プロバイダー渡しParseExactを使用してみてください:

string dateString = "2/16/2008 12:15:12 PM"; 
    string format = "M/dd/yyyy hh:mm:ss tt "; 

    DateTime dateTime = DateTime.ParseExact(dateString, format, 
     CultureInfo.InvariantCulture); 
関連する問題