【发布时间】:2012-10-11 22:45:07
【问题描述】:
我有一个自定义的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,所以我不知道它是从哪里来的。
【问题讨论】:
-
另外,请不要问为什么奇怪的格式(没有零占位符等),我正在与只接受这种格式的日期的外部服务集成。否则它不会是我的第一选择。 ;)
-
我得到的输出显示在每行示例代码旁边的 cmets 中。这是错误的,因为(在我的系统上),我得到“Date: 10-11-2012 4:34:17 PM”作为输出。
-
这是正确的输出。我们在 10 月 = 10。
-
@sylon - 注意连字符而不是斜杠
-
你以什么文化运行你的窗口?
标签: c# string datetime .net-4.0 datetime-format