     public static const DATESTYLE_yMMM:String = "yMMM";
     public static const DATESTYLE_yMMMM:String = "yMMMM";
     public static const DATESTYLE_MMMEEEd:String = "MMMEEEd";
+    
+    /**
+     *  Maximum year supported by DateTimeFormatterEx class.
+     */
+    public static const MAX_YEAR:uint = 30827;
+    
+    /**
+     *  Minimum year supported by DateTimeFormatterEx class.
+     */
+    public static const MIN_YEAR:uint = 1601;
     
     // Number of milli seconds for a day
     private static const MILLISECONDS_PER_DAY:int = 1000 * 60 * 60 * 24;

        if (pattern)
        {
            // 'L' is not supported by most systems so relace with 'M'
            // Problem if pattern has L or c in string literals. 
            // TBD: Discuss with Masa.
            pattern = pattern.replace(/L/g, "M");
            // ru locale uses c as symbol for day name of the week instead E.
            // catering to only skeleton patterns.
            pattern = pattern.replace(/ccc/g, "EEE");
        }
        
        return pattern;

    */
    private static const REGEXP_LOCALEID:RegExp =
        /([a-z]+)?(?:[-_]([A-Z][a-z]+))?(?:[-_]([A-Z]+))?([a-zA-Z-]+)?(?:@(.*))?/;
    
    private static const REGEXP_L:RegExp = /(?:^[^'L]*(?:'[^']*')*[^L']*)(L+)/;
    
    private static const REGEXP_c:RegExp = /(?:^[^'c]*(?:'[^']*')*[^c']*)(c+)/;
    
    // Format pattern for yMMM
    private static const FORMATPATTERNLIST_yMMM:Vector.<FormatPattern> =
