Beispiel #1
0
        private static string GetDateTimeFormat(string format, string language, object rplCalendar)
        {
            if (format == null || format.Length <= 0)
            {
                format = "G";
            }
            CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture(language);

            cultureInfo = new CultureInfo(cultureInfo.Name, false);
            if (cultureInfo.DateTimeFormat == null)
            {
                cultureInfo.DateTimeFormat = DateTimeFormatInfo.CurrentInfo;
            }
            if (rplCalendar != null)
            {
                bool       flag              = false;
                Calendar   calendarInstance  = LayoutConvert.GetCalendarInstance((RPLFormat.Calendars)rplCalendar);
                Type       type              = calendarInstance.GetType();
                Calendar[] optionalCalendars = cultureInfo.OptionalCalendars;
                foreach (Calendar calendar in optionalCalendars)
                {
                    if (type == calendar.GetType())
                    {
                        flag = true;
                        break;
                    }
                }
                if (flag)
                {
                    cultureInfo.DateTimeFormat.Calendar = calendarInstance;
                }
                else
                {
                    calendarInstance = new GregorianCalendar();
                    cultureInfo.DateTimeFormat.Calendar = calendarInstance;
                }
            }
            string             empty          = string.Empty;
            DateTimeFormatInfo dateTimeFormat = cultureInfo.DateTimeFormat;
            string             timeSeparator  = dateTimeFormat.TimeSeparator;
            string             dateSeparator  = dateTimeFormat.DateSeparator;

            empty = ((format.Length != 1) ? format : FormatHandler.GetDateTimePattern(format[0], dateTimeFormat));
            return(FormatHandler.GetExcelPictureDateTimeFormat(empty, timeSeparator, dateSeparator));
        }