3 回答
TA贡献1846条经验 获得超7个赞
DateTime.TryParse 是当前DateTimeFormatInfo
对象中的解析信息,由当前线程文化隐式提供。
由于 DateTime.TryParse(String, DateTime) 方法尝试使用当前区域性的格式规则解析日期和时间的字符串表示形式,因此尝试跨不同区域性解析特定字符串可能会失败或返回不同的结果。如果特定的日期和时间格式将在不同的语言环境中解析
在某些文化中,DateTime
分隔符是.
而不是 /
。
在我的电脑上。
DateTime.TryParse
将 Parse"9.08"
是今年'09/08'
, 2018/09/08
是有效的datetime
,所以它是true
.
DateTime.TryParse
Parse"2.52"
会在今年'02/52'
,但 2 月没有第 52 天,2018/02/52
不是有效的DateTime
,所以它会是false
。
我会使用DateTime.TryParseExact 来解析 DateTime,因为您可以将您的CultureInfo
和Parse
DateTime 字符串设置为参数并确保符合您的预期格式。
DateTime.TryParseExact("09.08", "MM.dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dt);
TA贡献1805条经验 获得超9个赞
除非您每次都试图了解 .NET 的字符串转换,否则,您应该无法回答“为什么会发生这种情况?”
DateTime.TryParse 只是一个简单的条件处理,以防止您在执行时出错
Convert.ToDateTime(dateString)
因此,DateTime.TryParse = false
意味着你不应该Convert.ToDateTime
对那个字符串做。
相反,如果字符串为DateTime.TryParse = true
,则表示该字符串应符合 .NET 日期字符串的期望(这意味着 .NET 知道如何将该字符串转换为 DateTime)。
- 3 回答
- 0 关注
- 361 浏览
添加回答
举报