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 關注
- 421 瀏覽
添加回答
舉報