C# 将.netcore中的字符串从格式dd.MM.yyyy hh:MM:ss解析为datetime

C# 将.netcore中的字符串从格式dd.MM.yyyy hh:MM:ss解析为datetime,c#,datetime,.net-core,C#,Datetime,.net Core,我发现了类似的问题,但本案例没有涉及到任何问题 我试图做到以下几点: string dateTime = "28.11.2020 16:08:43" var date = DateTime.ParseExact(dateTime, "dd.MM.yyyy hh:mm:ss", CultureInfo.InvariantCulture) 但我有个例外: System.FormatException: String '28.11.2020 16:08:43

我发现了类似的问题,但本案例没有涉及到任何问题

我试图做到以下几点:

string dateTime = "28.11.2020 16:08:43"

var date = DateTime.ParseExact(dateTime, "dd.MM.yyyy hh:mm:ss", CultureInfo.InvariantCulture)
但我有个例外:

System.FormatException: String '28.11.2020 16:08:43' was not recognized as a valid DateTime.
   at System.DateTime.ParseExact(String s, String format, IFormatProvider provider)

您在格式字符串中使用了
hh
,意思是“半天的小时数,范围为1-12”。您需要
HH
,意思是“一天中的小时,范围在0-23之间”。实际值(16)不在1-12范围内,因此存在误差


每当您遇到日期/时间格式或解析问题时,都需要非常非常仔细地检查日期/时间格式。旁注:由于Stefan听起来像来自德国/奥地利/瑞士,因此默认情况下,您使用
作为日期分隔符。那么为什么要使用
InvariantCulture
,为什么要使用
ParseExact
<代码>日期时间。解析(日期时间)已经可以工作了。如果它可能包含无效格式,请使用
TryParse