根据MSDN,静态属性DateTimeFormatInfo.InvariantInfo“获取与文化无关(默认)”的默认只读DateTimeFormatInfo对象。
然而,长日期模式是“dddd,dd MMMM yyyy”,格式如2016年2月29日星期一。这种格式通常用于西欧大陆。
短日期模式是“MM / dd / yyyy”,其格式为02/29/2016。这种格式通常在美国使用。
更糟糕的是,当尝试转换为可排序格式“s”时,此FormatProvider将导致02/29/2016 00:00:00,这几乎无法排序。
这种不一致的行为是一个错误,还是对“独立文化”的妥协?
答案 0 :(得分:0)
对我来说似乎是标准行为。 DateTimeFormatInfo.InvariantInfo既不是中性文化也不是特定文化,但它生成的格式可以转换为任何特定于文化的格式。正如您在source code中所看到的,它是基于英语的,但不是特定于文化的(但不是en-US)。还有你的观察:
短日期模式是" MM / dd / yyyy"这导致了 格式02/29/2016。这种格式通常在美国使用。
不正确,因为en-US文化ToString(" d")将提供2/29/2016(无领先)。时间也是上午或下午。