【发布时间】:2021-06-17 18:49:55
【问题描述】:
刚刚在 .Net 5 上迁移。
下一个代码在“日期”变量中返回“01/01/0001 00:00:00 +00:00”。
DateTime.TryParseExact(
"Июн 16 2021",
"MMМ d yyyy",
CultureInfo.CreateSpecificCulture("ru-RU"),
DateTimeStyles.None,
out DateTime date
);
https://dotnetfiddle.net/E5VDbH
在 .Net Core 3.1 上没有问题。
有人遇到过同样的问题吗?
【问题讨论】:
-
尝试打印出所有月份的名称。有时他们会“修复”这些问题。
-
见docs.microsoft.com/en-us/dotnet/api/…。
TryParseExact失败很可能是由于在 .NET Core 3.1 和 .NET 5 上处理CultureInfo的方式不同。 -
这是意料之中的,因为
DateTime.TryParseExact返回false,这意味着操作没有成功。如果您期待Exception,则需要使用DateTime.ParseExact方法(无需尝试)。 Try 表示根据成功返回真/假,不抛出异常。 -
将文本更改为“июнь 16 2021”时有效
-
@PMF,感谢您的好建议)
标签: c# .net .net-core .net-5 datetime-parsing