TryParseExact不会处理包含日期和时间的字符串,而格式仅包含日期格式

时间:2015-06-29 06:13:31

标签: c# datetime

我知道为什么当我在我的字符串中有时间" 00:00:00" 时,这确实有效?

DateTime.TryParseExact("01/06/2015 00:00:00", "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out tempDate)   

当我这样做时,它可以正常工作:

DateTime.TryParseExact("01/06/2015", "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out tempDate)  

任何帮助将不胜感激! 感谢

2 个答案:

答案 0 :(得分:5)

来自documentation;

  

将指定的日期和时间字符串表示形式转换为它   DateTime等效使用指定的格式,特定于文化   格式信息和样式。 字符串表示的格式   必须与指定的格式完全匹配

对于你的第二个例子,他们匹配,但在第一个例子中,他们没有。

改为使用dd/MM/yyyy HH:mm:ss格式。

string s = "01/06/2015 00:00:00";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    // Successfully parsing
}

更多信息;

答案 1 :(得分:0)

不幸的是,我尝试了答案,但没有成功。

事实证明,我尝试ParseExact的日期字符串的开头有一个空格字符。 (例如“ 20/08/2019”)

因此,请仔细检查您的日期字符串,确保没有发现没有隐藏的字符或空格字符