是否存在用于显示“ [日] [月] [年]”的标准DateTime格式? 我不希望使用自定义格式的字符串,因为它取消了根据国家/地区排列“天”和“月”的顺序的功能。 例如,“ en-us”是“ 11月22日”,在法国是第一天,所以是“ 11月22日”
仅显示这样的日期和月份,我知道我可以使用“ M”标准格式的字符串。
但是我怎么写“ 2018年11月22日”?
我需要像这样连接两个字符串吗?
$"{dt.ToString("M")}, {dt.ToString("yyyy")}"
还有其他方法吗?
答案 0 :(得分:2)
完全选项不可用似乎有点奇怪。我可以建议的最接近的方法是使用自定义格式,而不是提供您自己的格式,而是抓取DateTimeFormatInfo.LongDatePattern
并清除所有出现的“ dddd”(及其周围的空间/标点符号)。
这样可以在消除工作日的同时为您提供跨文化的变化。
示例:
en-US => dddd, MMMM dd, yyyy => MMMM dd, yyyy => November 22, 2018
fr-FR => dddd d MMMM yyyy => d MMMM yyyy => 22 novembre 2018
答案 1 :(得分:1)
据我所知,解决您的问题的方法可能是创建一个新的[mysqld] section
对象。
我已经测试过了。
my.cnf
因此格式输出将与您提供的位置格式一样。
CultureInfo
有关更多信息,请重定向至: CultureInfo Class
答案 2 :(得分:0)
$“ {dt.ToString(” MMMM dd,yyyy“)}”
这将显示为2018年11月22日,前提是指定了dt这个日期。 另外,请检出Custom Date Time Format String。
答案 3 :(得分:0)
您可以从当前的区域性中获取LongDatePattern
,然后用正则表达式删除星期几(dddd
)和周围的字符。下面,我假设逗号,句点和空格是唯一的分隔符,但是如果遇到其他分隔符,则可能需要相应地修改正则表达式。
string longDatePattern = CultureInfo.CurrentCulture.DateTimeFormat.LongDatePattern;
string modifiedDatePattern = Regex.Replace(longDatePattern, @"[,.]?\s?d{4}[,.]?\s?", "");
Console.WriteLine(longDatePattern); // "dddd, MMMM d, yyyy"
Console.WriteLine(modifiedDatePattern); // "MMMM d, yyyy"
现在,您可以应用自定义格式了:
string s = DateTime.Now.ToString(modifiedDatePattern);
Console.WriteLine(s); // "November 22, 2018"