首先喷一个。这是谁提的需求——把两位数字表示的年份转换成四位数字的年份?脑子呢?多出来的两位数字是谁生的?用脚趾头想想也知道最终结果不唯一(不唯一就是根本没解决问题)。脑子被千年虫蚀空了。
对于这种需求,直接印上“INVALID”,哪来的回哪去。
答:
如果一个表示日期的字符串格式类似于“yyyy-MM-dd”, 即用四位数字表示年份,那么DateTime解析得到的年份就是我们看到的年份。
例:“2014-06-19”解析得到的年份是2014。
如果原字符串中年份使用两位数字表示,即格式类似于“yy-MM-dd”, 那么DateTime解析得到的年份是属于哪个世纪呢?
如:“14-06-19”解析得到的年份是1914? 2014? 2114?...
默认情况下这是由运行程序的操作系统设置决定的。
(其实不光是C#,很多其它语言或程序都采用这种方式。)
Win7为例:

注:上图中所设置的年份“1930“和”2029”会随着时间的推移而自行改变吗?
如:今年(2014)是“1930”和“2029”,到了明年(2015)会不会就自动变成了“1931”和“2030”?
求指导
探讨了在不同日期字符串格式下,如何正确解析并理解年份表示方式,包括四位数与两位数的区别及系统设置的影响。
1433

被折叠的 条评论
为什么被折叠?



