无法将此字符串解析为日期

Having trouble parsing this string into a date

在 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);

不应该测试 return true?我觉得我在这里遗漏了一些小东西。

"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;

如果您的输入字符串和模式缺少某些日期组件,则假定当前年、月和日,具体取决于您缺少的组件。

它不会去寻找特定日期和日期组合最后一次有效的时间。

因此,该解析正在寻找 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