gpt4 book ai didi

.net - 更改 CultureAndRegionInfoBuilder 的默认日历

转载 作者:行者123 更新时间:2023-12-04 14:42:50 24 4
gpt4 key购买 nike

我想将“th-TH”文化的默认日历从 ThaiBuddhist 更改为 Gregorian,并将其注册为自定义文化。

CultureAndRegionInfoBuilder cultureAndRegionInfoBuilder = new CultureAndRegionInfoBuilder("th-TH", CultureAndRegionModifiers.Replacement);
cultureAndRegionInfoBuilder.AvailableCalendars = new Calendar[] { new GregorianCalendar()};
cultureAndRegionInfoBuilder.Register();

以上部分不会更改默认日历。

CultureInfo cultureInfo = new CultureInfo("th-TH");
cultureInfo.DateTimeFormat.Calendar = new GregorianCalendar();

CultureAndRegionInfoBuilder cultureAndRegionInfoBuilder = new CultureAndRegionInfoBuilder("th-TH", CultureAndRegionModifiers.Replacement);
cultureAndRegionInfoBuilder.LoadDataFromCultureInfo(cultureInfo);

cultureAndRegionInfoBuilder.Register();

这也不行。

请帮忙。谢谢

最佳答案

我不认为你可以那样做。实际上,有更简单的方法来覆盖默认日历:

        CultureInfo thaiCulture = CultureInfo.CreateSpecificCulture("th-TH");
Console.Out.WriteLine(DateTime.Now.ToString(thaiCulture));
DateTimeFormatInfo thaiDateTimeFormat = thaiCulture.DateTimeFormat;
thaiDateTimeFormat.Calendar = new GregorianCalendar();
Console.Out.WriteLine(DateTime.Now.ToString(thaiCulture));

这适用于我的控制台应用程序。唯一的问题,它可能不适合你。为什么?我认为您提到的“SSRS 服务器端报告”作为不同的进程运行,我可能是错的,但我很确定您只能为当前进程覆盖 CultureInfo 设置。我不认为它可以(也不应该)在全局范围内完成。

此外,我不知道您正在使用的报告解决方案的具体情况,所以它可能没有帮助,但您不能将已经格式化的日期时间字符串作为参数传递吗?那将是在 Crystal Reports 中解决它的方法。最坏的情况是将格式化字符串写入数据库。

关于.net - 更改 CultureAndRegionInfoBuilder 的默认日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446802/

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