我正在尝试使用格式将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 AM 或 4/28/2012 6:00:00 PM ,则结果相同 “2012-04-27 06:00:00.000”
答案 0 :(得分:6)
您使用了使用12小时制的hh
。您希望HH
使用24小时制。
有关自定义格式字符串的详细信息,请参阅MSDN。
请注意,您可能希望指定不变文化,除非您确实希望时间分隔符依赖于当前文化:
string formatted = StartDate.ToString("yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture);
(请注意,如果您将格式字符串传递给ToString
,则不应该使用括号。我会假设这只是问题中的拼写错误。)
如果希望使用12小时制,请在格式字符串中使用tt
来生成AM / PM指示符。