首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在DateTime格式中获取无效的月份名称

在DateTime格式中获取无效的月份名称
EN

Stack Overflow用户
提问于 2016-01-27 12:40:34
回答 2查看 305关注 0票数 3

我有一个简单的程序,将返回日和ShortDate。例如,如果输入是2016年3月27日,则输出为"Sun,03/27/ 2016“。

代码语言:javascript
复制
string ShortMonthFormat = "ddd";
DateTime dtc = Convert.ToDateTime("2016-03-27 12:26:41.210");
string result = dtc.ToString(string.Format("{0}, {1}", ShortMonthFormat, dtc.ToShortDateString()));
Console.WriteLine(result);
Console.ReadLine();

此代码适用于当前的系统日期格式,即MM/dd/yyyy(03/27/2016)。但是,如果系统的日期格式更改为dd-MMM-yy(27-Mar-16),则代码将返回以下输出"Sun, 27-3ar-16"

三月(三月)作为"3ar"返回

8月(8月)成为"AuA.D."

为什么会发生这种情况?

EN

Stack Overflow用户

发布于 2016-01-27 12:50:59

似乎您的代码中有一个bug。您正在尝试获取短日期格式,但不是获取格式,而是格式化日期,这将导致格式化日期而不是格式。您可以在代码中修复这个问题:

代码语言:javascript
复制
string format = string.Format(
  "{0}, {1}",
  ShortMonthFormat,
  CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
);
string result = dtc.ToString(format);

您没有指定CultureInfo,因此使用了CultureInfo.CurrentCulture,这反映在CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern中。如果您想使用另一个CultureInfo,您还必须在dtc.ToString(format, cultureInfo)中使用它。

另一种解释修复的方法是,您必须用dtc.ToShortDateString()替换CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35037659

复制
相关文章

相似问题

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