2012-02-07 21 views
3

私はWindows xp sp3、vs 2010とターゲットフレームワーク.Net 3.5の両方で2台のラップトップを持っています。日付と時刻の変数を処理するとき、私はlaptop1で なぜ時々DateTime.TryParseの仕事と他の時間だけDateTime.ParseExact仕事ですか?

DateTime oldOrderDate; 
string strnewdate = string.Empty; 
CultureInfo provider = CultureInfo.InvariantCulture; 

if (DateTime.TryParse(items[1], out oldOrderDate))          
    strnewdate = oldOrderDate.ToString("yyyy-MM-dd"); 

が例外を返されたことがわかった「という文字列が有効な日時として認識されませんでした」が、コード以下:

oldOrderDate = DateTime.ParseExact(items[1], "dd/MM/yyyy", provider); 
strnewdate = oldOrderDate.ToString("yyyy-MM-dd"); 

作品。大藤、laptop2で、

oldOrderDate = DateTime.ParseExact(items[1], "dd/MM/yyyy", provider); 
strnewdate = oldOrderDate.ToString("yyyy-MM-dd"); 

は、 "文字列が有効な日時として認識されませんでした" 例外が返されますが、以下のコード:

if (DateTime.TryParse(items[1], out oldOrderDate))          
    strnewdate = oldOrderDate.ToString("yyyy-MM-dd"); 

は作品。だから、私の質問は、どのように両方のラップトップで動作するようにDateTime変数の処理を行う必要があります。私はあなたが私に与えることができるアドバイスを本当に感謝しています。前もって感謝します。

+1

[TryParseExact](http://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact.aspx) –

+3

を使用すると、両方の世界のベストを得ることができます。あなたが解析しようとしている文字列の私は言語が各マシン上に何であるかを調べるでしょう。 – btlog

+0

一般的な答えは、あなたが提供した日付が、それぞれの方法によって有能なものと一致しない可能性があります。 'ParseExact'は指定されたフォーマットに基づいて日付を厳密に解析しますが、' TryParse'はさまざまな標準フォーマットを知っているのでもっと賢く(おそらく)賢明です。 'Try' *メソッドは好まれる傾向があります。 –

答えて

0

わかりませんが、コントロールパネルの日付と時間の地域設定をご覧ください。私のシステムでは、それらも異なっており、結果も異なっています。