gpt4 book ai didi

c# - 以 DateTime 格式获取无效的月份名称

转载 作者:行者123 更新时间:2023-11-30 14:51:13 24 4
gpt4 key购买 nike

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

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"

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

Aug(八月)变成 "AuA.D."

为什么会这样?

最佳答案

因为 M format specifier含义是从 ​​112g specifier 的个位数月份数表示时期或时代,例如 A.D.

由于其他字符不引用任何格式说明符,它们完全反射(reflect)到输出中。

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

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

string result = dtc.ToString("ddd, 27-Mar-16");

意义不大。

您可以修复您的代码以使用您的 ShortDatePattern property你的 CurrentCulture 而不是你使用 dtc.ToShortDateString() 之类的;

string result = dtc.ToString(string.Format("{0}, {1}", 
ShortMonthFormat,
CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern));

顺便说一句,基于变量名(即ShortMonthFormat),ddd specifier用于缩写的日期名称。如果你想获得缩写的月份名称,你可以使用 MMM specifier相反。

string ShortMonthFormat = "MMM";

关于c# - 以 DateTime 格式获取无效的月份名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com