首页 > 解决方案 > CultureInfo nb-NO DateTime.TryParse 在 VS2019 和 dotnetfiddle.net 上的差异

问题描述

在我的机器上运行并输出以下内容

string locale = "nb-NO";

CultureInfo culture = CultureInfo.CreateSpecificCulture(locale);

string shortDateFormatString = culture.DateTimeFormat.ShortDatePattern;
string shortTimeFormatString = culture.DateTimeFormat.ShortTimePattern;

我得到以下输出

shortDateFormatString "dd.MM.yyyy"
ShortTimePattern "HH:mm"

但是在 dotnetfiddle.net 我得到了以下

shortDateFormatString "dd.MM.yyyy"
ShortTimePattern "HH.mm"

我想C#使用CLDR,所以根据 https://github.com/unicode-cldr/cldr-dates-full/blob/1af902b749bef761f07281f80241250053b4313d/main/nb/ca-gregorian.json#L323

两种短时间模式都应该是有效的。在 dotnetfiddle 上,可以解析 nb-NO 日期时间,如下所示

06.12.2017 12:34
06.12.2017 12.34

但是在我机器上的 VS2019 中,只能解析

06.12.2017 12:34

怎么可能不一样?两者都使用.NET 4.7.2。

你可以在这里查看我的小提琴https://dotnetfiddle.net/68DDYz

标签: c#datetimecultureinfo

解决方案


怎么可能不一样?

因为文化信息是从操作系统加载的,并且会随着时间而变化。除非两台机器使用完全相同的 Windows 版本(相同的更新集、修补程序等),否则它们完全有可能在短时间模式等方面具有不同的值。(是的,这很烦人,但这是生活的一部分。)


推荐阅读