言語:私たちが使用している私たちのプロジェクトの一つでそう DateTime.ParseExact文字列は1台のPC上で有効な日時として認識されませんでした
:のC#、.NETフレームワーク: 4.5、使用方法DateTimeに文字列を解析するには、次の機能:
private DateTime FormatDate(string date, string format)
{
try
{
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime dt = DateTime.ParseExact(date, format, culture);
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
とこのようにそれを呼び出す:
DateTime startDate = FormatDate("01/17/2016", "M/d/yyyy");
3台のPCでは、各PCの日付形式がdd/MM/yyyyで、2台のPCで日付形式がdd-MMM-yyの場合、ParseExactを実行しようとするとバグが発生します:
文字列が有効なDateTimeとして認識されませんでした。
dd-MMM-yy形式を使用しても、3台目のPCで動作し続けますが、
: 私はすべての3のPC上の日付と時刻の設定を比較して、設定がすべて等しく、違いが1つ2のPC上で、私たちは、Visual Studioを使用することを2013年第三のVisual Studioの中、2015年例外の詳細です
メッセージ:文字列が有効なDateTimeとして認識されませんでした。
のInnerException:いいえ内部例外
スタック:System.DateTime.ParseExact(Stringを、文字列の形式、するIFormatProviderプロバイダー)AssetTracking.PopUpWindows.AddItem_Warranty.MakeReminderで で(TrackersDataContext ATDC、アイテムNI、文字列のitemId) d:¥Solutions¥Trackers¥Trackers¥PopUpWindows¥AddItem_Warranty.xaml.cs:Line 807 at Trackers.PopUpWindows.AddItem_Warranty。 <> c__DisplayClass8.b__3()dは:\ソリューション\タッカー\トラッカー\ PopUpWindows \のAddItem_Warranty.xaml.cs:ライン685
質問: 私はわからないが、別のIDEの一部であり、問題?または、他に何人かのPCでこのバグを作り出すことができますが、まったく同じ日付と時刻の設定を持つ他の人にはできません。
使用しているIDEは、コードのコンパイルにも影響しません。私はそれが文化の設定のような何かになると思うだろうhttp://stackoverflow.com/questions/27230972/datetime-parse-works-on-one-machine-but-not-the-other – Kritner
あなたは ' DateTimeFormatInfo.GetInstance(新しいCultureInfo( "en-US"、true))。各マシンでGetAllDateTimePatterns()?これらのパターンは 'DateTime.ParseX()'メソッドで試されます –
あなたのフォーマットに一致する区切り文字で日付文字列が常に渡されることを確かめますか? – Steve