3

我正在尝试使用格式将 DateTime 对象转换为字符串,但由于某些奇怪的原因,它忽略了 AM/PM。它只需要对象中小时的大小。

我正在使用以下格式:

StartDate.ToString("yyyy-MM-dd hh:mm:ss.fff");

String.Format("0:yyyy-MM-dd hh:mm:ss.fff", StartDate);

我不认为两者之间有区别,但只是想尝试一下。如果我传递一个值4/28/2012 6:00:00 AM4/28/2012 6:00:00 PM,结果是相同的“2012-04-27 06:00:00.000”

4

1 回答 1

6

您已经使用hh了使用 12 小时制的时钟。您想要HH使用 24 小时制的时钟。

有关自定义格式字符串的更多详细信息,请参阅MSDN

请注意,您可能希望指定不变的文化,除非您真的希望时间分隔符依赖于当前的文化:

string formatted = StartDate.ToString("yyyy-MM-dd HH:mm:ss.fff",
                                      CultureInfo.InvariantCulture);

(请注意,如果您将格式字符串传递给 ,则不应使用大括号ToString。我认为这只是问题中的一个错字。)

如果使用 12 小时制,tt请在格式字符串中使用以生成 AM/PM 指示符。

于 2012-04-28T12:14:23.103 回答