[英]C# DateTime.Parse Error
任何人都知道為什么會失敗? 我能夠使用ParseExact解決它,但我想理解為什么它失敗了。
DateTime test = DateTime.Parse("Dec 24 17:45");
日期<“12月24日”工作正常。 日期> = 12月24日因此錯誤失敗:
mscorlib.dll中出現未處理的“System.FormatException”類型異常附加信息:日歷System.Globalization.GregorianCalendar中不支持字符串表示的DateTime。
編輯:感謝Habib注意到即使我沒有收到錯誤,也不是我期待的結果。 所以當不使用支持的格式時要小心DateTime.Parse!
這是我為解決這個問題所做的工作。 我只需要處理兩種不同的格式。 今年將是“MMM dd HH:mm”否則將是“MMM dd yyyy”
if (!DateTime.TryParseExact(inDateTime, "MMM dd HH:mm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces,out outDateTime))
{
if (!DateTime.TryParseExact(inDateTime, "MMM dd yyyy", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces, out outDateTime))
{
//Handle failure to Parse
}
}
日期<“12月24日”工作正常。 日期> = 12月24日因此錯誤而失敗
DateTime.Parse
使用標准格式來解析日期以及Day> = 24失敗的原因,就是它將該部分視為小時部分而不是您假設的日期部分 。
由於允許的小時部分可以在0到23之間,因此適用於那些日期。 (它不被視為一天的一部分)
它也忽略了Dec
部分並考慮了該部分的當前日期。
考慮以下示例:
DateTime test = DateTime.Parse("Dec 22 17:45");
它返回:
test = {23/02/2015 10:17:00 PM}
查看時間部分設置為22:17或10:17 PM
您傳遞的DateTime格式無效。 我認為問題是你沒有提供一年的日期部分。 以下是可接受的DateTime示例:
DateTime time = DateTime.Parse("Dec 24 2015 17:45");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.