Amy*_*Amy 7 .net c# localization digit
在我正在编写的应用程序中,我想用英语显示当前日期和时间,但也要在其他语言环境中显示.
例如俄语,阿拉伯语和中文.
// DateTime.ToLongDateString doesn't support a IFormatProvider parameter
DateTime.Now.ToString("dddd, d MMMM, yyyy", new CultureInfo("en-US"));
// "Wednesday, 7 August, 2013"
DateTime.Now.ToString("dddd, d MMMM, yyyy 'r.'", new CultureInfo("ru-RU"));
// "?????, 7 ???????, 2013 r."
Run Code Online (Sandbox Code Playgroud)
工作良好...
DateTime.Now.ToString("dddd? d MMM? yyyy", new CultureInfo("ar"));
// "????????? 30 ?????? 1434"
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.
但是......我想将数字显示为(东方)阿拉伯数字,而不是拉丁文/阿拉伯数字.虽然这当然可以通过简单的替换('0'到'0',1到'1'等)来解决.
但后来有中文:
DateTime.Now.ToString("yyyy?M?d?dddd", new CultureInfo("zh-CN"))
// "2013?8?7????"
Run Code Online (Sandbox Code Playgroud)
中文数字似乎比仅仅做一个简单的替换要复杂得多; 有时一个字符变成2.在那旁边,格式化的日期似乎显示当前的格里高利日期,而不是当前的中国日期.
所以我的问题是:
A).NET/C#中是否有任何本地化功能可以在其他数字系统中显示数字(特别是日期)?
B)我可以强制.NET/C#在中文(可能还有日文和其他)日历中显示日期,因为它似乎与阿拉伯语日历有关吗?
请参阅这些问题(和答案):
至于这是否适用于所有语言?...我不会打赌,特别是在像中国这样的文化中,那里有多种方式和上下文相关的用法。