internal static DateTimeFormatInfo GetDateFormat(CultureInfo culture) { // Check for persian first if (culture.LCID == 1065) { return(PersianCalendarHelper.GetDateTimeFormatInfo()); } if (culture.Calendar is GregorianCalendar) { return(culture.DateTimeFormat); } else { GregorianCalendar foundCal = null; DateTimeFormatInfo dtfi = null; foreach (System.Globalization.Calendar cal in culture.OptionalCalendars) { if (cal is GregorianCalendar) { // Return the first Gregorian calendar with CalendarType == Localized // Otherwise return the first Gregorian calendar if (foundCal == null) { foundCal = cal as GregorianCalendar; } if (((GregorianCalendar)cal).CalendarType == GregorianCalendarTypes.Localized) { foundCal = cal as GregorianCalendar; break; } } } if (foundCal == null) { // if there are no GregorianCalendars in the OptionalCalendars list, use the invariant dtfi dtfi = ((CultureInfo)CultureInfo.InvariantCulture.Clone()).DateTimeFormat; dtfi.Calendar = new GregorianCalendar(); } else { dtfi = ((CultureInfo)culture.Clone()).DateTimeFormat; dtfi.Calendar = foundCal; } return(dtfi); } }
public static string ToLongDateString(DateTime?date, CultureInfo culture) { string result = string.Empty; DateTimeFormatInfo format = GetDateFormat(culture); if (date.HasValue && format != null) { //result = date.Value.Date.ToString(format.LongDatePattern, format); result = PersianCalendarHelper.ToCurrentCultureString(date.Value.Date, format.LongDatePattern, format); } return(result); }
public static string ToAbbreviatedMonthString(DateTime?date, CultureInfo culture) { string result = string.Empty; DateTimeFormatInfo format = GetDateFormat(culture); if (date.HasValue && format != null) { //string[] monthNames = format.AbbreviatedMonthNames; //if (monthNames != null && monthNames.Length > 0) //{ // result = monthNames[(date.Value.Month - 1) % monthNames.Length]; //} result = PersianCalendarHelper.ToCurrentCultureString(date.Value, "MMM", format); } return(result); }
internal static DateTimeFormatInfo GetDateFormat(CultureInfo culture) { return(PersianCalendarHelper.GetDateTimeFormatInfo()); }