我嘗試解析我的字符串datetime,但我得到一個FormatException。ParseExact字符串到DateTime
string date = "27.02.2017 13:03:16 Uhr";
action.Date =
DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss",CultureInfo.InvariantCulture);
有人有什麼想法嗎?
我嘗試解析我的字符串datetime,但我得到一個FormatException。ParseExact字符串到DateTime
string date = "27.02.2017 13:03:16 Uhr";
action.Date =
DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss",CultureInfo.InvariantCulture);
有人有什麼想法嗎?
問題是輸入結束時的「Uhr」。如果你像這樣指定你的格式,輸入必須與格式匹配。
在有人添加「Uhr」並且有些人沒有,我建議使用正則表達式提取相關部分。
using System.Text.RegularExpressions;
Match m = Regex.Match(@"/([\d]{2}\.[\d]{2}\.[\d]{4} +[\d]{2}\:[\d]{2}\:[\d]{2})/", date);
if (m != null)
date = m.Groups[0].Value;
else
// Something wrong with the input here
然後(除非m爲空),在大多數情況下,您可以將此字符串用作ParseExact-部分的有效輸入。但請注意,正則表達式不會執行任何範圍檢查,因此像Montag, 99.99.9999 99:99:99 Uhr
這樣的輸入會導致日期字符串99.99.9999 99:99:99
與正則表達式匹配,但無論如何都不是有效的日期時間。
你必須逃離Uhr
後綴:
string date = "27.02.2017 13:03:16 Uhr";
action.Date = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss 'Uhr'",
CultureInfo.InvariantCulture);
' 「DD.MM.YYYY HH:MM:SS 'UHR'」','Exact'意味着確切... –
謝謝@PatrickHofman! –