无法将此字符串解析为日期
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
在 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