次のスニペットの結果は「12/06/193012:00:00」です。「12Jun30」が代わりに2030になるように、暗黙の世紀をどのように制御しますか?
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());
とりあえず、正しい解決策は最初に日付を正しく指定することであるという事実を脇に置いておいてください。
注:結果は、コードを実行しているPCのシステム日時とは無関係です。
回答: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());
}