Exemplo n.º 1
0
        public static string GetStandardPattern(char format, DateTimeFormatInfo dfi, bool forDateTimeOffset, out bool useutc, out bool use_invariant, out bool needsTranslation)
        {
            String pattern;

            useutc = false;
            use_invariant = false;
            needsTranslation = true;

            switch (format)
            {
                case 'd':
                    if(dfi.ShortDatePattern != null)
                        pattern = dfi.ShortDatePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(DateFormat.SHORT, -1);
                        needsTranslation = false;
                    }
                    break;
                case 'D':
                    if (dfi.LongDatePattern != null)
                        pattern = dfi.LongDatePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(DateFormat.FULL, -1);
                        needsTranslation = false;
                    }
                    break;
                case 'f':
                    if (dfi.LongDatePattern != null && dfi.ShortTimePattern != null)
                        pattern = dfi.LongDatePattern + " " + dfi.ShortTimePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(DateFormat.FULL, DateFormat.SHORT);
                        needsTranslation = false;
                    }
                    break;
                case 'F':
                    if (dfi.FullDateTimePattern != null)
                        pattern = dfi.FullDateTimePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(DateFormat.FULL, DateFormat.MEDIUM);
                        needsTranslation = false;
                    }
                    break;
                case 'g':
                    if (dfi.ShortDatePattern != null && dfi.ShortTimePattern != null)
                        pattern = dfi.ShortDatePattern + " " + dfi.ShortTimePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(DateFormat.SHORT, DateFormat.SHORT);
                        needsTranslation = false;
                        
                    }
                    break;
                case 'G':
                    if (dfi.ShortDatePattern != null && dfi.LongTimePattern != null)
                        pattern = dfi.ShortDatePattern + " " + dfi.LongTimePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(DateFormat.SHORT, DateFormat.MEDIUM);
                        needsTranslation = false;
                        
                    }
                    break;
                case 'm':
                case 'M':
                    pattern = dfi.MonthDayPattern;
                    break;
                case 'o':
                case 'O':
                    pattern = dfi.RoundtripPattern;
                    use_invariant = true;
                    break;
                case 'r':
                case 'R':
                    pattern = dfi.RFC1123Pattern;
                    if (forDateTimeOffset)
                        useutc = true;
                    use_invariant = true;
                    break;
                case 's':
                    pattern = dfi.SortableDateTimePattern;
                    use_invariant = true;
                    break;
                case 't':
                    if (dfi.ShortTimePattern != null)
                        pattern = dfi.ShortTimePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(-1, DateFormat.SHORT);
                        needsTranslation = false;
                    }
                    break;
                case 'T':
                    if (dfi.LongTimePattern != null)
                        pattern = dfi.LongTimePattern;
                    else
                    {
                        pattern = dfi.GetJavaPattern(-1, DateFormat.MEDIUM);
                        needsTranslation = false;
                    }
                    break;
                case 'u':
                    pattern = dfi.UniversalSortableDateTimePattern;
                    if (forDateTimeOffset)
                        useutc = true;
                    use_invariant = true;
                    break;
                case 'U':
                    if (forDateTimeOffset)
                        pattern = null;
                    else
                    {
                        if (dfi.FullDateTimePattern != null)
                            pattern = dfi.FullDateTimePattern;
                        else
                        {
                            pattern = dfi.GetJavaPattern(DateFormat.FULL, DateFormat.MEDIUM);
                            needsTranslation = false;
                        }
                        useutc = true;
                    }
                    break;
                case 'y':
                case 'Y':
                    pattern = dfi.YearMonthPattern;
                    break;
                default:
                    pattern = null;
                    break;
            }

            return pattern;
        }