gpt4 book ai didi

c# - DateTime.ToString(String, IFormatProvider) 不适用于 Xamarin.Forms 中的波斯语 CultureInfo "fa-IR"

转载 作者:行者123 更新时间:2023-11-30 17:25:53 25 4
gpt4 key购买 nike

以下代码在示例 .Net Core 控制台应用程序上运行良好:

var result = DateTime.Now.ToString("d", new CultureInfo("fa-IR"));

此 CultureInfo 中的结果正确27/5/1398。但是 Xamarin.Forms 中的相同代码将导致 18/8/2019 这显然是错误的!我也在 Android 的 MainActivity 上尝试过,但得到了同样的错误结果。

我在两个不同的 Xamarin.Forms 项目上对其进行了测试,一个 Xamarin.Forms 版本为 3.6.0.220655,另一个为 4.1.0.555618

如何在 Xamarin.Forms 上获得正确的结果?

更新:

下一行:

new CultureInfo("fa-IR").DateTimeFormat.Calendar

显示 System.Globalization.GregorianCalendar!为什么???对于这种文化,我希望它是 System.Globalization.PersianCalendar

下一次尝试:我非常想通过这种方式将波斯语文化的默认日历设置为 PersianCalendar:

new CultureInfo("fa-IR").DateTimeFormat.Calendar = new PersianCalendar(); 

但遇到了这个异常:System.ArgumentOutOfRangeException: Not a valid calendar for the given culture. 然后在搜索其他类似的 SO 问题后,在官方 PersianCalendar 文档中找到了这个注释:

You cannot use a PersianCalendar object as the default calendar for a culture. The default calendar is specified by the CultureInfo.Calendar property and must be one of the calendars returned by the CultureInfo.OptionalCalendars property. Currently, the PersianCalendar class is not an optional calendar for any culture supported by the CultureInfo class and consequently cannot be a default calendar.

最佳答案

在 .NET Core 中它受支持,但在 .NET Framework 中不受支持。您可以按照此文档转换为波斯日历格式:

PersianCalendar Class

关于c# - DateTime.ToString(String, IFormatProvider) 不适用于 Xamarin.Forms 中的波斯语 CultureInfo "fa-IR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57546476/

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