【发布时间】:2016-04-29 03:58:57
【问题描述】:
我的代码在这里将String 解析为DateTime。
DateTime datenew = DateTime.Parse("05/06/2015 17:18:12");
String convertDate = datenew .ToString("MM/dd/yyyy hh:mm:ss tt");
此解析会自动将时间16:13:12 转换为05:18:12 PM。
在我输入 dd/MM/yyyy 的格式之前,这一切都很顺利(顺便说一句,这与 hh:mm:ss tt 或 hh:mm:ss 无关。没关系)。它会引发异常。
例如我输入18/02/2015 17:18:12,现在它会抛出一个错误。
无论dd/MM/yyyy 或MM/dd/yyyy 格式如何,我都希望我的输入是动态的。我只想要MM/dd/yyyy hh:mm:ss tt 格式的标准输出。
有什么建议吗?
编辑。
Exception thrown:
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: String was not recognized as a valid DateTime.
【问题讨论】:
-
你能发布它抛出的异常消息吗?
-
正如@GrantWinney 指出的那样,编写试图猜测日期格式的代码几乎总是一个坏主意。选择所需的格式并坚持下去。
-
@DmitryK。请参阅编辑后的帖子:)
-
@GrantWinney - 当我将输入更改为 18/02/2015 17:18:12 但 05/06/2015 17:18:12 工作正常时发生。问题是当我输入 18/02/2015 17:18:12 时。
-
@WhiteMark 是的,05/06 '工作正常',但它仍然可能是错误的。提供“18/02/2015”格式的人清楚地使用“dd/MM/yyyy” - 这意味着,如果他们向您发送“05/06/2015”,则表示 6 月 5 日,但你会读到 5 月 6 日。