首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-27 12:43:10

因为 format specifier的意思是从112的单数月数,而 specifier是指诸如A.D.这样的时期或时代。

由于其他字符没有引用任何格式说明符,因此它们反映的正是它们的输出。

顺便说一句,您的代码似乎有点复杂和错误。首先,使用ShortMonthFormatToShortDateString生成格式,然后用该格式化字符串生成DateTime的字符串表示。

这就是为什么你的代码看起来像;

代码语言:javascript
复制
string result = dtc.ToString("ddd, 27-Mar-16");

这不太有意义。

您可以修改代码来使用您的 property of您的CurrentCulture,而不是您使用dtc.ToShortDateString()

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

顺便说一句,基于变量名称(即ShortMonthFormat), specifier用于缩写的日期名称。如果你想得到缩短的月份名称,你可以用 specifier代替。

代码语言:javascript
复制
string ShortMonthFormat = "MMM";
票数 4
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
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35037659

复制
相关文章

相似问题

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