我有一个自定义的 DateTime
格式字符串:"M/d/yyyy h:m:ss tt"
。
例如,对于日期“2012 年 9 月 18 日中午”,我希望其输出类似于 "9/18/2012 12:0:00 PM"
。
时间的格式似乎正确,但日期部分变得困惑。我看到格式为 "MM-dd-yyyy"
的日期,但我不明白为什么。
下面是一些重现问题的示例代码:
var datetime = DateTime.Now;
Console.WriteLine("Date: " + datetime.ToString("MMMM d, yyyy")); // Date: October 11, 2012 --> correct
Console.WriteLine("Date: " + datetime.ToString("M/d/yyyy h:m:ss tt")); // Date: 10-11-2012 4:34:17 PM --> wrong
这是 MSDN doc for custom DateTime format strings .
关于我做错了什么的任何想法?我怎样才能达到我想要的结果?
编辑:
示例代码最后一行不正确的地方是连字符而不是斜杠,我不知道为什么。
此外,我的计算机语言设置为英语(加拿大)。但是我的“短”日期格式和“长”日期格式都不像 M-d-yyyy
,所以我不知道这是从哪里来的。
最佳答案
/
是日期分隔符,它依赖于文化 - 在您当前的文化中,它被定义为 -
。如果你总是想要一个 /
使用:
Console.WriteLine("Date: " + datetime.ToString("M\"/\"d\"/\"yyyy h:m:ss tt"));
或
Console.WriteLine("Date: " + datetime.ToString("M'/'d'/'yyyy h:m:ss tt"));
即将您希望“按原样”输出的部分放在引号内。
关于c# - 自定义日期时间格式字符串未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12849727/