2013年7月22日 星期一

[ASP.NET]用TryParseExact將特殊日期格式轉回DateTime

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

//錯誤的轉換方式,回傳False
if (DateTime.TryParse(DateStr, out _date))
{
    //TryParse轉換成功
}

//正確轉換方式
if(DateTime.TryParseExact(DateStr, "yyyy/MM/dd @ HH:mm:ss:ffff", null, System.Globalization.DateTimeStyles.None, out _date))
{
    //TryParseExact轉換成功
}

Reference

--

MSDN

沒有留言:

張貼留言