在 C# 中,我正在嘗試使用自定義模式決議字串。資料將始終格式化為"ddd,M/d",所以我嘗試使用TryParseExact:
string date = "Wed 11/17";
string pattern = "ddd M/d";
DateTime dateresult;
bool test = DateTime.TryParseExact(date, pattern, new CultureInfo("en-US"),
DateTimeStyles.None, out dateresult);
不應該測驗回傳true嗎?我覺得我在這里遺漏了一些小東西。
uj5u.com熱心網友回復:
當您的輸入字串和模式缺少某些日期組件時,將假定當前年、月和日,具體取決于您缺少哪些組件。
它不會去尋找特定日期和日期組合最后一次有效的時間。
因此,該決議正在尋找 2022 年 11 月 17 日星期三,并且該日期是星期四,而不是星期三。然而,16 日是星期三,所以如果我們稍微更改一下代碼:
string date = "Wed 11/16"; // only changed 17 to 16
string pattern = "ddd M/d";
DateTime dateresult;
bool test = DateTime.TryParseExact(date, pattern, new CultureInfo("en-US"),
DateTimeStyles.None, out dateresult);
Console.WriteLine($"{test}: {dateresult}");
然后它輸出:
True: 16.11.2022 00:00:00
uj5u.com熱心網友回復:
"ddd M/d"此格式在 DateTime.TryParseExact() 中是不可接受的;如需參考,請查看 https://docs.microsoft.com/en-us/dotnet/api/system.datetime.tryparseexact?view=net-6.0
string date = "01/20/2022";
string pattern = "M/dd/yyyy";
DateTime dateresult;
bool test = DateTime.TryParseExact(date, pattern, new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.NoCurrentDateDefault, out dateresult);
// Return True;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417182.html
標籤:
