C# 我如何解析;2016年10月17日6:52:13“;进入约会时间

C# 我如何解析;2016年10月17日6:52:13“;进入约会时间,c#,C#,我试图将datetime:17/10/2016 6:52:13作为文本解析为datetime,但我总是将01/01/0001作为输出 我的代码是: DateTime.TryParseExact(dateTime, "dd/MM/yyyy" + " " + "hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out timeStamp); 有什么线索吗?您的输入只有一个小时

我试图将datetime:
17/10/2016 6:52:13作为文本解析为
datetime
,但我总是将
01/01/0001
作为输出

我的代码是:

 DateTime.TryParseExact(dateTime, "dd/MM/yyyy" + " " + "hh:mm:ss",
                        CultureInfo.InvariantCulture, DateTimeStyles.None, out timeStamp);

有什么线索吗?

您的输入只有一个小时数字,但您的格式字符串使用两个。此外,由于没有AM/PM说明符,您可能打算使用24小时制,这需要大写字母
H

请改为尝试“dd/MM/yyyy H:MM:ss”


有关更多详细信息,请参阅。

您可以执行类似的操作

string givenDate = "17/10/2016 06:52:13";
DateTime myDate = DateTime.ParseExact(givenDate, "dd/MM/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

或者您可以简单地使用“h:mm:ss”,因为您给定的时间是6:52:13

当然,对于两位数小时的输入,这将中断。@ChrisShain:不,不会。11或12适合这种格式。01、02等也一样。如果他没有使用像16:35:29这样的24小时格式,它就可以工作了。对于“10”-“12”作为一个小时,它可以工作,而不是“13”-“23”。这一点很好。我最初在那里有一个大写字母“H”,但不想偏离示例太远。现在我再看一遍,这里没有AM/PM说明符,所以他可能要工作24小时。
TryParseExact
返回解析的布尔结果,您可以忽略它。@dave请不要在标题中添加标记,除非有必要。@slugster当然可以(尽管在我的辩护中它已经在标题中)