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

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


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

上述指定的格式显示了以下不正确的日期格式:
YYYY-11-DD 21:11:SS
为什么年、日和秒无法正确显示?请提供建议,如何解决上述问题。
6个回答

13
  • 年份用小写的 y,不是大写的Y
  • 日期用小写的d,不是大写的D
  • 分钟用小写的m,大写的M是表示月份的
  • 秒数用小写的s,不是大写的S
  • 另外在格式中移除单引号,因为你不需要转义字符串文字

参见:自定义日期和时间格式字符串

所以您的格式应该是:

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

3
格式化字符串对大小写敏感。对于DateTimeYYYYDDSS不被识别为格式化字符串,因此将其视为文本字符。

请使用格式化字符串进行日期时间格式化。

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

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

取而代之。


2

试试这个:

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

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

此外,请查看这个有用的MSDN链接


2
您的案例写错了:
estTime.ToString("yyyy-MM-dd HH':'mm':'ss");

1

C#是大小写敏感的,对于日期时间格式字符串来说,大小写有意义。

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

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

自定义日期和时间格式字符串


所以hh小写表示12小时制?我在一个Android/Windows跨平台应用程序上遇到了问题。 - Windgate

1

如果需要完整的参考,请查看this MSDN文章。尝试:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接