DateTime TryParse - 将'99'映射到2099,而不是1999

Chr*_*ris 8 c# datetime parsing

可能重复:
DateTime.TryParse世纪控件C#

我需要TryParse一个字符串,如下所示:"01/01/99"到DateTime对象,我正在使用这样的东西:

DateTime outDate;
if (DateTime.TryParseExact("01/01/99", "dd/MM/yy", null, System.Globalization.DateTimeStyles.None, out outDate))
{
     //Do stuff here
}
Run Code Online (Sandbox Code Playgroud)

当然,这个日期被解析为01/01/1999,这不是我想要的 - 我希望它解析为2099.有一个简单的方法来做到这一点吗?遗憾地修改我正在解析的数据包括全年不是一个选择.

p.c*_*ell 6

这个答案中,你可以提供ParseExact()一个文化对象.怀疑TryParseExact()是一样的:

CultureInfo ci = new CultureInfo(CultureInfo.CurrentCulture.LCID);
ci.Calendar.TwoDigitYearMax = 2099;
//Parse the date using our custom culture.
DateTime dt = DateTime.ParseExact(input, "MMM-yy", ci);
Run Code Online (Sandbox Code Playgroud)