C# DateTime 和 string 相互轉換

字串轉日期時間

系統自動判斷日期時間格式

字串轉日期時間最簡單的方式就是使用 DateTime.Parse(),他可以自動猜測格式並判斷,具體的規則可以查看官方說明文件
    
DateTime dateTime = DateTime.Parse("2022/04/08 01:02:03");
    

指定日期時間格式

筆者比較喜歡使用 DateTime.ParseExact(),手動指定日期時間字串資料格式,畢竟如果來源格式和規格定義的不同,本來就不應該處理。
    
DateTime dateTime = DateTime.ParseExact("2022/04/08 23:59:59", "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
    

指定多個日期時間格式

假設今天輸入的資料比較混亂,可能同時有多種格式,那就可以使用字串陣列存放所有格式再傳入 DateTime.ParseExact()
    
        // 列出所有可能的格式
        string[] dateTimeFormats = new[] { "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd H:mm:ss" };
        DateTime dateTime = DateTime.ParseExact("2022/04/08 1:59:59", dateTimeFormats, CultureInfo.InvariantCulture);
    

日期時間轉字串

DateTime 轉成 string 直接使用 ToString 即可
    
        DateTime dateTime = DateTime.Now;
        string str = dateTime.ToString("yyyy-MM-dd HH:mm:ss");
    


參考資料:
DateTime.Parse 方法
DateTime.ParseExact 方法
C# 自訂日期與時間格式字串

留言