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

标签 c# parsing datetime

<分区>

Possible Duplicate:
DateTime.TryParse century control C#

我需要尝试将如下字符串“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
}

当然,这个日期被解析为 01/01/1999,这不是我想要的 - 我希望它被解析为 2099。有没有简单的方法可以做到这一点?遗憾的是,无法修改我正在解析的数据以包含全年。

最佳答案

取自this answer ,您可以为 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);

关于c# - DateTime TryParse - 将 '99' 映射到 2099,而不是 1999,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208103/

相关文章:

c# - ASP.NET 如何根据另一个页面的单击事件更新页面

c# - 如何使用MimeKit获取电子邮件的所见即所得主体

c# - 将数据源与 CheckBoxList 一起使用

excel - 如何在 Azure 逻辑应用中解析 Excel 电子表格

mysql - 转义 Node.JS MySQL 问题

c# - 如何从数组中删除重复的数字?

python - 使用 python : KeyError: 'O' 解析文件时出现逻辑错误

python - 在 python (pandas) 中将纳秒修剪为 100 纳秒

datetime - 如何在 Julia 中使用日期时间?

c# - 检查 dateTime 是周末还是工作日