[英]Date and time conversion in C# - DateTime.ParseExact() not working as expected
[英]DateTime.ParseExact not working in C#, Date format Conversion not working
解析時間不起作用,因為我想將 "13-06-2019 00:00:00"(dd-MM-yyyy HH:mm:ss) 轉換為 "06-13-2019 00:00:00"(MM-dd -yyyy HH:mm:ss)
嘗試使用Convert.toDateTime()
和DateTime.ParseExact()
IFormatProvider culture = new CultureInfo("en-US");
var a = DateTime.ParseExact(a, "MM-dd-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
var b = DateTime.ParseExact(a, "yyyy-MM-dd HH:mm:ss", null);
var c = DateTime.ParseExact(a, "yyyy-MM-dd HH:mm:ss", culture);
沒有任何作用
DateTime
結構在DateTime
使用公歷,並且該日歷中沒有第 13 個月。
所以,用MM
說明符解析13
是錯誤的。 我強烈懷疑您嘗試使用dd-MM-yyyy HH:mm:ss
格式。
string a = "13-06-2019 00:00:00";
DateTime b = DateTime.ParseExact(a, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
您的第二個和第三個示例也不起作用,因為它們的格式與您的字符串完全不同。 當您使用ParseExact
方法解析您的字符串時,您的字符串和您的格式應該完全匹配。
另外我想提一下, hh
和HH
說明符都可以在我的代碼示例中使用。 但作為一般格式考慮,使用dd-MM-yyyy HH:mm:ss
格式比其他選項更常見和可靠。
DateTime.ParseExact(date,format,culture) 的格式參數是要轉換的日期字符串的源格式,返回值是日期類型,您可以根據所需格式將其轉換回字符串。
var a = "13-06-2019 00:00:00";
IFormatProvider culture = new CultureInfo("en-US");
DateTime b = DateTime.ParseExact(a, "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine($"{b:MM-dd-yyyy HH:mm:ss}");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.