首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#/.NET中其他语言环境中数字和日期的格式化

C#/.NET中其他语言环境中数字和日期的格式化
EN

Stack Overflow用户
提问于 2013-08-07 18:48:51
回答 2查看 4.1K关注 0票数 7

在我编写的应用程序中,我想以英语和其他语言环境显示当前的日期和时间。

例如俄文、阿拉伯文和中文。

代码语言:javascript
运行
复制
// 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."

效果很好..。

代码语言:javascript
运行
复制
DateTime.Now.ToString("dddd٫ d MMM٫ yyyy", new CultureInfo("ar"));
// "الأربعاء٬ 30 رمضان٬ 1434"

好像挺好的。

然而..。我想把这些数字表示为(东方)阿拉伯数字,而不是拉丁/阿拉伯数字。当然,这可以通过简单的替换来解决(“٠‎”到“0”,1到“١”等等)。

但还有中国人:

代码语言:javascript
运行
复制
DateTime.Now.ToString("yyyy年M月d日dddd", new CultureInfo("zh-CN"))
// "2013年8月7日星期三"

汉语数字似乎比简单的替换要复杂得多;有时一个字符变成2,旁边的格式化日期似乎显示的是当前的公历日期,而不是当前中国日期

,所以我的问题是:

在.NET/C#中是否有任何本地化功能可以在其他数字系统中显示数字(具体日期)?

( B)我是否可以强制.NET/C#以中文(可能还有日文或其他)日历显示日期,就像它似乎与阿拉伯日历一样?

EN

回答 2

Stack Overflow用户

发布于 2013-08-07 19:16:50

玩ToLongDateString()

代码语言:javascript
运行
复制
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-CN");
var myDate = DateTime.Now.ToLongDateString();

myDate值:2013年年8月7日

票数 1
EN

Stack Overflow用户

发布于 2013-08-07 19:04:35

见以下问题(及答案):

至于这是否适用于所有语言?...I不会押注于此,尤其是在中国这样的文化中,那里有多种方式和对上下文敏感的用法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18111424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档