DateTime timeUtcWhenCommentPostingOccurred = getDateAndTimeOfCommentPostingInUtc();
DateTime estTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtcWhenCommentPostingOccurred, estZone);
estTime.ToString("YYYY-MM-DD HH':'MM':'SS");
上述指定的格式显示以下不正确的日期格式:
YYYY-11-DD 21:11:SS
为什么年、日和秒无法正确显示? 请提供有关如何解决上述问题的建议。
- 因为它的小写
y
年份,而不是大写Y
。 - Day也是如此,它的小写
d
不是大写D
- 对于分钟,它的小写
m
不是大写M
,大写M
是对于月, - 几秒钟它小写
s
,而不是大写S
- 还要删除格式中的单引号,因为您不想转义字符串文字
请参见:自定义日期和时间格式字符串
所以你的格式应该是:
estTime.ToString("yyyy-MM-dd HH:mm:ss");
格式字符串是小心敏感的。 YYYY
、DD
和SS
不是DateTime
的可识别格式字符串,因此它们被视为文字字符。
用
estTime.ToString("yyyy-MM-dd HH:mm:ss");
相反。
请注意MM
(月(和mm
(分钟(之间的区别。
试试这个:
estTime.ToString("yyyy-MM-dd HH:mm:ss");
C# 区分大小写,格式字符串也区分大小写
另请查看此有用的 MSDN 链接。
你弄错了:
estTime.ToString("yyyy-MM-dd HH':'mm':'ss");
C# 区分大小写,大小写在日期时间格式字符串中具有含义。
yyyy
是年,MM
月,dd
是一天,mm
分钟。大写HH
表示 24 小时制。这给出了预期的输出:
string output = estTime.ToString("yyyy-MM-dd HH:mm:ss");
自定义日期和时间格式字符串
有关完整参考,请查看此 MSDN 文章。尝试:
estTime.ToString("yyyy-MM-dd HH':'mm':'ss");