在我编写的应用程序中,我想以英语和其他语言环境显示当前的日期和时间。
例如俄文、阿拉伯文和中文。
// 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."效果很好..。
DateTime.Now.ToString("dddd٫ d MMM٫ yyyy", new CultureInfo("ar"));
// "الأربعاء٬ 30 رمضان٬ 1434"好像挺好的。
然而..。我想把这些数字表示为(东方)阿拉伯数字,而不是拉丁/阿拉伯数字。当然,这可以通过简单的替换来解决(“٠”到“0”,1到“١”等等)。
但还有中国人:
DateTime.Now.ToString("yyyy年M月d日dddd", new CultureInfo("zh-CN"))
// "2013年8月7日星期三"汉语数字似乎比简单的替换要复杂得多;有时一个字符变成2,旁边的格式化日期似乎显示的是当前的公历日期,而不是当前中国日期。
,所以我的问题是:
在.NET/C#中是否有任何本地化功能可以在其他数字系统中显示数字(具体日期)?
( B)我是否可以强制.NET/C#以中文(可能还有日文或其他)日历显示日期,就像它似乎与阿拉伯日历一样?
发布于 2013-08-07 19:16:50
玩ToLongDateString()
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-CN");
var myDate = DateTime.Now.ToLongDateString();myDate值:2013年年8月7日
发布于 2013-08-07 19:04:35
见以下问题(及答案):
至于这是否适用于所有语言?...I不会押注于此,尤其是在中国这样的文化中,那里有多种方式和对上下文敏感的用法。
https://stackoverflow.com/questions/18111424
复制相似问题