第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不是給定 culture.parameter 名稱的有效日歷:

不是給定 culture.parameter 名稱的有效日歷:

C#
炎炎設計 2022-12-24 13:38:16
DataGridView我在將日期顯示為波斯日歷時遇到問題。使用此代碼后:using System.Globalization;using System.Threading;...CultureInfo info = new CultureInfo("fa-Ir"){    DateTimeFormat = {Calendar = new PersianCalendar()}};Thread.CurrentThread.CurrentCulture = info;我的問題已解決,我的 PC 或筆記本電腦都沒有問題,都是 Windows 10 和.netFramwork 4.8我的裝有 Windows 7 的客戶 PC 只有 Culture 有問題。這是為什么?異常消息: 不是給定區(qū)域性的有效日歷。參數(shù)名稱:值
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

根據(jù) Rasool Aghajani 的回答,我實現(xiàn)了一個新的 CultureInfo 類,您可以將其設置為應用程序的默認文化,并且所有日期時間都將采用波斯文化格式。


using System;

using System.Globalization;

using System.Reflection;


namespace SomeNamespace

{

    public class PersianCulture : CultureInfo

    {

        public PersianCulture() : base("fa-IR")

        {

            if (this.Calendar is PersianCalendar)

                return;


            //do hack here to set the default culture's calendar to PersianCalender on OS versions that are not supporting PersianCalendar as default culture calendar

            var dateTimeFormat = this.DateTimeFormat;


            dateTimeFormat.AMDesignator = "?????????";

            dateTimeFormat.AbbreviatedDayNames = new string[] { "??????", "??????", "??????", "????????", "???????", "????", "????" };

            dateTimeFormat.AbbreviatedMonthGenitiveNames = new string[] { "???????", "????????", "?????", "???", "?????", "??????", "???", "????", "???", "??", "????", "?????", "" };

            dateTimeFormat.AbbreviatedMonthNames = new string[] { "???????", "????????", "?????", "???", "?????", "??????", "???", "????", "???", "??", "????", "?????", "" };

            dateTimeFormat.CalendarWeekRule = CalendarWeekRule.FirstDay;

            dateTimeFormat.DateSeparator = "/";

            dateTimeFormat.DayNames = new string[] { "??????", "??????", "??????", "????????", "???????", "????", "????" };

            dateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday;

            dateTimeFormat.FullDateTimePattern = "yyyy MMMM d, dddd H:mm:ss";

            dateTimeFormat.LongDatePattern = "yyyy MMMM d, dddd";

            dateTimeFormat.LongTimePattern = "H:mm:ss";

            dateTimeFormat.MonthDayPattern = "MMMM d";

            dateTimeFormat.MonthGenitiveNames = new string[] { "???????", "????????", "?????", "???", "?????", "??????", "???", "????", "???", "??", "????", "?????", "" };

            dateTimeFormat.MonthNames = new string[] { "???????", "????????", "?????", "???", "?????", "??????", "???", "????", "???", "??", "????", "?????", "" };

            dateTimeFormat.PMDesignator = "????????";

            dateTimeFormat.ShortDatePattern = "yyyy/M/d";

            dateTimeFormat.ShortTimePattern = "H:mm";

            dateTimeFormat.ShortestDayNames = new string[] { "?", "?", "?", "?", "?", "?", "?" };

            dateTimeFormat.TimeSeparator = ":";

            dateTimeFormat.YearMonthPattern = "yyyy MMMM";


            var persianCalendar = new PersianCalendar();


            var dateTimeFormatInfoCalendar = typeof(DateTimeFormatInfo).GetField("calendar", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);


            dateTimeFormatInfoCalendar?.SetValue(dateTimeFormat, persianCalendar);


            var cultureTableRecord = typeof(DateTimeFormatInfo).GetField("m_cultureTableRecord", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);

            if (cultureTableRecord != null)

            {

                var dateTimeFormatValue = cultureTableRecord.GetValue(dateTimeFormat);


                var useCurrentCalendarMethodInfo = dateTimeFormatValue.GetType().GetMethod("UseCurrentCalendar", BindingFlags.NonPublic | BindingFlags.Instance);

                if (

                    useCurrentCalendarMethodInfo !=

                    null)

                {

                    var persianCalendarIdPropertyInfo = persianCalendar.GetType().GetProperty("ID", BindingFlags.Instance | BindingFlags.NonPublic);

                    if (

                        persianCalendarIdPropertyInfo !=

                        null)

                        useCurrentCalendarMethodInfo.Invoke(dateTimeFormatValue, new object[] { persianCalendarIdPropertyInfo.GetValue(persianCalendar, null) });

                }

            }


            var cultureCalendar = typeof(CultureInfo).GetField("calendar", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);

            cultureCalendar?.SetValue(this, persianCalendar);


            this.DateTimeFormat = dateTimeFormat;

        }

    }

}



查看完整回答
反對 回復 2022-12-24
?
幕布斯7119047

TA貢獻1794條經(jīng)驗 獲得超8個贊

我確實用這個替換了我的舊代碼:


        System.Globalization.CultureInfo calture = new System.Globalization.CultureInfo("fa-Ir");

        System.Globalization.DateTimeFormatInfo info = calture.DateTimeFormat;

        info.AbbreviatedDayNames = new string[] { "?", "?", "?", "?", "?", "?", "?" };

        info.DayNames = new string[] { "??????", "??????", "??????", "????????", "???????", "????", "????" };

        info.AbbreviatedMonthNames = new string[] { "???????", "????????", "?????", "???", "?????", "??????", "???", "????", "???", "??", "????", "?????", "" };

        info.MonthNames = new string[] { "???????", "????????", "?????", "???", "?????", "??????", "???", "????", "???", "??", "????", "?????", "" };

        info.AMDesignator = "?.?";

        info.PMDesignator = "?.?";

        info.ShortDatePattern = "yyyy/MM/dd";

        info.FirstDayOfWeek = DayOfWeek.Saturday;

        System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();


        var field = typeof(System.Globalization.DateTimeFormatInfo).GetField("calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

        field?.SetValue(info, cal);

        var fieldInfo = typeof(System.Globalization.DateTimeFormatInfo).GetField("m_cultureTableRecord", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

        if (fieldInfo != null)

        {

            object obj = fieldInfo.GetValue(info);

            var methodInfo = obj.GetType().GetMethod("UseCurrentCalendar", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);

            if (

                methodInfo !=

                null)

            {

                var propertyInfo = cal.GetType().GetProperty("ID", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

                if (

                    propertyInfo !=

                    null)

                    methodInfo.Invoke(obj, new object[] { propertyInfo.GetValue(cal, null) });

            }

        }

        var field1 = typeof(System.Globalization.CultureInfo).GetField("calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

        field1?.SetValue(calture, cal);

        var fieldInfo1 = typeof(System.Globalization.CultureInfo).GetField("calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

        fieldInfo1?.SetValue(calture, cal);


        System.Threading.Thread.CurrentThread.CurrentCulture = calture;

        System.Threading.Thread.CurrentThread.CurrentUICulture = calture;

        System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat = info;

        System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat = info;

它在所有計算機上都工作得很好......但我不知道......如果某些代碼是真的應該在所有計算機上工作!否則如果有問題不應該在任何計算機上工作......


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 82 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號