以下代碼片段的結果是「12/06/1930 12:00:00」。我如何控制隱含的世紀,使「6月12日30日」變成2030年?DateTime.TryParse世紀控制C#
string dateString = "12 Jun 30"; //from user input
DateTime result;
DateTime.TryParse(dateString, new System.Globalization.CultureInfo("en-GB"),System.Globalization.DateTimeStyles.None,out result);
Console.WriteLine(result.ToString());
請預留,就目前而言,這樣一個事實:正確的解決方案是在第一時間正確地指定的日期。
注意:結果與運行代碼的電腦的系統日期時間無關。
答:感謝Deeksy
for (int i = 0; i <= 9; i++)
{
string dateString = "12 Jun " + ((int)i * 10).ToString();
Console.WriteLine("Parsing " + dateString);
DateTime result;
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-GB");
cultureInfo.Calendar.TwoDigitYearMax = 2099;
DateTime.TryParse(dateString, cultureInfo , System.Globalization.DateTimeStyles.None, out result);
Console.WriteLine(result.ToString());
}
的另一個好處這種方法是在數據庫中的時間短於2067頂出,所以設置twodigityearmax到2067很好地工作。 – Nat 2009-11-19 20:47:27