Yah*_*hya 17 c# datetime parsing
为什么.NET假设从下面我们的意思是2015年,而不是1915年.
var d = DateTime.ParseExact("20/11/15", "dd/MM/yy", new CultureInfo("en-GB"));
Run Code Online (Sandbox Code Playgroud)
我想,它试图接近,但它背后是否有合理的设计决策?
Joe*_*oey 27
这是一个系统设置,您可以根据需要自定义您的语言环境:
Jak*_*rtz 16
它使用Calendar.TwoDigitYearMax财产.
此属性允许将2位数年份正确转换为4位数年份.例如,如果此属性设置为2029,则100年范围为1930年至2029年.因此,2位数值30将被解释为1930,而2位数值29则被解释为2029.
对于en-GB,此属性的值为2029.可以在"控制面板"中更改它:
此属性的初始值源自"控制面板"的区域和语言选项部分中的设置.
来自MSDN:
在解析操作中,使用"yy"自定义格式说明符解析的两位数年份将根据格式提供程序的当前日历的Calendar.TwoDigitYearMax属性进行解释.