[轉貼] 用TryParseExact將特殊日期格式轉回DateTime

2018070810:34
出處:http://www.dotblogs.com.tw/kyleshen/archive/2013/07/30/112937.aspx

一般日期轉換,我都會用DateTime.TryParse來轉換,但如果不注意的話,會發生日期完全不對或失敗的問題…
日期不對舉凡像有些系統會使用05/07/2013這種格式,心裡想的是七月五號,但轉換後會變成五月七號,另外一種情況就是自訂格式轉換的問題,今天收到客戶送過來的日期格式如下"2013/07/22 @ 20:00:15:4324",如果用DateTime.TryParse就會回傳false,這時就要用DateTime.TryParseExact():
view source

print?
01 //特殊格式
02 string DateStr = "2013/07/22 @ 20:00:15:4324";
03 DateTime _date;
04  
05 //錯誤的轉換方式,回傳False
06 if (DateTime.TryParse(DateStr, out _date))
07 {
08     //TryParse轉換成功
09 }
10  
11 //正確轉換方式
12 if(DateTime.TryParseExact(DateStr, "yyyy/MM/dd @ HH:mm:ss:ffff"null, System.Globalization.DateTimeStyles.None, out _date))
13 {
14     //TryParseExact轉換成功
15 }