我有以下代码片段将公历日期转换为回历日期。

public static string GregoriantoHijri(DateTime gregorianDate)
{
    CultureInfo arCI = new CultureInfo("ar-SA");
    var hijriCalendar = new HijriCalendar();
    hijriCalendar.HijriAdjustment = App_Code.StoreRetrieveSettingsAssist.getHA();
    arCI.DateTimeFormat.Calendar = hijriCalendar;  //CODE FAILS HERE
    string hijriDate = gregorianDate.ToString("dd-MM-yyyy", arCI);

    return hijriDate;
}


该代码非常适合我的Windows Mobile应用程序,该应用程序也已发布在商店中。
但是相同的代码给我Xamarin.Android中的问题

错误:


  System.ArgumentOutOfRangeException:
  对于给定的文化而言,该日历无效。
  参数名称:值


我不明白为什么使用相同.NET基类的代码在不同平台上会有问题。您能建议一种解决方法,因为这似乎不起作用。

最佳答案

您可能需要考虑NodaTime。它应该比本地.NET日期时间处理功能更强大,并且应该支持Hijri

09-04 21:32