將文本正確轉換為 DateTime 需要執行三個子任務:1、正確格式的日期和時間字元串。2、區域性,不同地區的日期和時間表示格式有區別,字元串格式有區別。3、指定轉換格式,例如轉換後的DateTime,可能沒有時間部分。 使用Parse轉換和TryParse轉換: string dateInput ...
將文本正確轉換為 DateTime 需要執行三個子任務:1、正確格式的日期和時間字元串。2、區域性,不同地區的日期和時間表示格式有區別,字元串格式有區別。3、指定轉換格式,例如轉換後的DateTime,可能沒有時間部分。
使用Parse轉換和TryParse轉換:
string dateInput = "Jan 1, 2009"; DateTime parsedDate = DateTime.Parse(dateInput); Console.WriteLine($"預設區域{CultureInfo.CurrentCulture.Name}:"+parsedDate); // 說明字元串格式是en-us區域 DateTime parsedDate1 = DateTime.Parse(dateInput,new CultureInfo("en-us")); Console.WriteLine("使用en-us:" + parsedDate1); // name不區分大小寫 // public CultureInfo(string name); CultureInfo MyCultureInfo = new CultureInfo("de-DE"); string MyString = "12 Juni 2008"; DateTime MyDateTime = DateTime.Parse(MyString, MyCultureInfo); Console.WriteLine(MyDateTime);
DateTime dateTime; DateTime.TryParse("Jan 1, 2009",new CultureInfo("en-us"),DateTimeStyles.None,out dateTime);
ParseExact:可以定義字元串轉換格式,可以是標準格式中的一種,也可以是自定義格式,但未必都能轉換成功。CultureInfo.InvariantCulture瞭解:https://www.cnblogs.com/GreenLeaves/p/6757917.html
string dateString, format; DateTime result; var provider = new CultureInfo("fr-FR"); dateString = "18/08/2015 06:30:15.006542"; // 自定義格式 format = "dd/MM/yyyy HH:mm:ss.ffffff"; try { result = DateTime.ParseExact(dateString, format, provider); Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); } catch (FormatException) { Console.WriteLine("{0} is not in the correct format.", dateString); } // Parse date-only value with invariant culture. provider = CultureInfo.InvariantCulture; dateString = "06/15/2008"; format = "d"; try { result = DateTime.ParseExact(dateString, format, provider); Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); } catch (FormatException) { Console.WriteLine("{0} is not in the correct format.", dateString); }
查看有哪些CultureInfo。CultureInfo.GetCultures(CultureTypes.AllCultures)。