La mondialisation de CultureInfo & DateTimeFormatInfo: Comment pouvons-nous changer les chiffres format de ma langue?

- Je utiliser System.Globalization comme ci-dessous:

CultureInfo calture = new CultureInfo(MyCultureInfoGoesHere);
DateTimeFormatInfo info = calture.DateTimeFormat;
info.AbbreviatedDayNames = new string[] { "bla", "bla", "bla", "bla", "bla", "bla", "bla" };
info.ShortestDayNames = new string[] { "bla", "bla", "bla", "bla", "bla", "bla", "bla" };
info.DayNames = new string[] { "bla", "bla", "bla", "bla", "bla", "bla", "bla" };
info.AbbreviatedMonthNames = new string[] { "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "" };
info.MonthNames = new string[] { "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "bla", "" };
info.AMDesignator = "bla";
info.PMDesignator = "bla";
info.ShortDatePattern = "yyyy/MM/dd";
//info.ShortDatePattern = "dd/MM/yyyy";
info.LongDatePattern = "dddd , dd MMMM yyyy";
info.FirstDayOfWeek = DayOfWeek.bla;
MyCalendar cal = new MyCalendar();
typeof(DateTimeFormatInfo).GetField("calendar", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic).SetValue(info, cal);
//object obj = typeof(DateTimeFormatInfo).GetField("m_cultureTableRecord", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic).GetValue(info);
//obj.GetType().GetMethod("UseCurrentCalendar", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(obj, new object[] { cal.GetType().GetProperty("ID", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(cal, null) });
typeof(System.Globalization.CultureInfo).GetField("calendar", BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic).SetValue(calture, cal);
Thread.CurrentThread.CurrentCulture = calture;
Thread.CurrentThread.CurrentUICulture = calture;
CultureInfo.CurrentCulture.DateTimeFormat = info;
CultureInfo.CurrentUICulture.DateTimeFormat = info;

Mes questions sont:

  1. Pourquoi les lignes commentées des erreurs dans VS2010 (.NET 4.0), mais ils sont ok dans VS2008 (.NET 3.5)?

  2. Comment puis-je localiser mes chiffres lorsque j'utilise DateTime.Now, je veux dire je veux chiffres format dans ma langue(Seulement Pour le type DateTime)! est-il possible?

Merci d'avance et meilleures salutations.

  • Si je comprends bien, que vous souhaitez utiliser dite arabe Orientale numéros au lieu de la typique 0-9?
  • oui / vous / droite, mais seulement dans ma DateTime Et composant de Calendrier / personne d'autre, où / est-il possible?
  • Quand vous dites "erreurs", il serait peut-être une bonne idée d'afficher les erreurs réelles que vous obtenez ainsi?
InformationsquelleAutor SilverLight | 2011-04-10