Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Persian Calendar not valid with CultureInfo

What's wrong with this code?

Error(Exception) message :

Not a valid calendar for the given culture.

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fa-Ir"); //Error
ci.DateTimeFormat.Calendar = new System.Globalization.PersianCalendar();
Application.CurrentCulture = ci;

And what's its solution?
Can I add a Calendar type to Windows XP regional option?

like image 645
ramezani.saleh Avatar asked Mar 27 '11 12:03

ramezani.saleh


2 Answers

a dirty reflection-based workaround is here :

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4768d48e-aa04-4c15-b688-a58fa4373bc9/

like image 184
Alireza Sabouri Avatar answered Oct 05 '22 10:10

Alireza Sabouri


It is explicitly mentioned in the MSDN article for PersianCalendar

Your application should not 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.

You cannot make this work. Use the Calendar as-is.

like image 27
Hans Passant Avatar answered Oct 05 '22 09:10

Hans Passant