gpt4 book ai didi

c# - .Net 5 DateTime.ParseExact 问题

转载 作者:行者123 更新时间:2023-12-03 21:40:36 24 4
gpt4 key购买 nike

刚刚迁移到 .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 上没有问题。
有没有人遇到过同样的问题?

最佳答案

我和@PMF 朝着相同的方向前进,并打印出 ru-RU 的所有月份名称。文化。从中我可以看出没有与您在示例中所使用的月份缩写相匹配的月份缩写。以下是获取所有有效值的方法:

var ci = CultureInfo.CreateSpecificCulture("ru-RU");
Console.WriteLine(String.Join(" - ", ci.DateTimeFormat.AbbreviatedMonthNames));
看到我们在六月,我怀疑 Июн也应该是六月,在 .NET 5 中缩写为 июнь .
我不会读或写俄语,所以我不知道这些与您所期望的相比如何,但这至少是 .NET 5 所期望的。
当我更换 Июниюнь在您的示例中,它正确地将其解析为日期。
如果您使用过 DateTime.ParseExact(),您就会看到这个并将您的代码括在 try/catch 中.你会有一个异常(exception)告诉你:

String 'Июн 16 2021' was not recognized as a valid DateTime.


这可以为您指明正确的方向。

关于c# - .Net 5 DateTime.ParseExact 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68025015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com