我在 Microsoft Connect 上提出了有关日期格式的请求(“ DateTime Formatting should calculate the correct suffix for the day ”)。基本上我想有一个格式化字符串代码,用于将后缀添加到日期编号。所以“1 Jan”将被格式化为“1st Jan”和“2 Jan”被格式化为“2nd Jan”等等。
对于英语案例来说,这很容易做到,但微软拒绝了这个想法,理由是它太难以国际化。
我只是想知道人们是否同意微软让仅仅为英语市场写作的英语程序员的生活变得更加困难是合理的,只是因为他们不能迎合非英语市场?
编辑:好的,我接受这样的论点,即有框架可以做他们想做的事。我更多是出于意识形态的要求。还要记住,对于非英语文化,有一个简单的后备方案,那就是什么都不添加,这不会让人们的生活比现在更糟。
编辑 2:对我来说,这是一个多小时的工作。我需要支持看起来像这样的代码:
DateTime minDate = new DateTime(2003, 12, 10);
string errorMessage = ValidationMessageResource.DateTooEarly;
Console.WriteLine(String.Format(errorMessage, minDate));
我无法控制资源文件的内容,资源字符串通常类似于“日期不应早于 {0:D}”。为此,我需要实现我自己的 IFormatProvider 类,该类必须支持 Microsoft 格式化程序接受的所有不同格式化字符串。微软似乎没有提供一种简单的方法来通过继承来扩展他们的格式化程序。