为什么“YYYY-MM-DD HH”:'MM':'SS“日期时间格式显示不正确?

时间:2013-11-25 15:53:48

标签: c# datetime timezone datetime-format

 DateTime timeUtcWhenCommentPostingOccurred = getDateAndTimeOfCommentPostingInUtc();
 DateTime estTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtcWhenCommentPostingOccurred, estZone);


 estTime.ToString("YYYY-MM-DD HH':'MM':'SS");

以上指定的格式显示以下不正确的日期格式:

YYYY-11-DD 21:11:SS

为什么年,日和秒都无法正常显示?请提供有关我如何解决上述问题的建议。

6 个答案:

答案 0 :(得分:10)

  • 因为Year的小写y,而不是大写Y
  • Day的情况相同,小写d不是大写D
  • 使用分钟,其小写m不是大写M,大写M是 一个月,
  • 对于秒数,它是小写s,而不是大写S
  • 同时删除格式中的单引号,因为您不想转义字符串文字

请参阅:Custom Date and Time Format Strings

所以你的格式应该是:

estTime.ToString("yyyy-MM-dd HH:mm:ss");

答案 1 :(得分:3)

Format strings对护理很敏感。 YYYYDDSS无法识别DateTime的格式字符串,因此将它们视为文字字符。

使用

estTime.ToString("yyyy-MM-dd HH:mm:ss");

代替。

请注意MM(月)和mm(分钟)之间的区别。

答案 2 :(得分:2)

试试这个:

estTime.ToString("yyyy-MM-dd HH:mm:ss");

C#区分大小写,格式字符串也区分大小写

另请查看此有用的MSDN link

答案 3 :(得分:1)

C#区分大小写,并且该案例在日期时间格式字符串中有意义。

yyyy是年份,MM月份,dd日期和mm分钟。大写HH表示24小时制。这给出了预期的输出:

string output = estTime.ToString("yyyy-MM-dd HH:mm:ss");

Custom Date and Time Format Strings

答案 4 :(得分:1)

你弄错了:

estTime.ToString("yyyy-MM-dd HH':'mm':'ss");

答案 5 :(得分:1)

有关完整参考检查this MSDN文章。尝试:

estTime.ToString("yyyy-MM-dd HH':'mm':'ss");