         return false;
     }
     
-    // identify the dateList item that has the longest width in DATE_AND_TIME mode    
+    // identify the dateList item that has the longest width in DATE_AND_TIME mode
     private function findLongestDateItem():Object
     {
         updateDayMonthDateFormatter();
         
-        dateTimeFormatter.dateTimePattern =  dayMonthDateFormatter.getMonthPattern();
-        
-        var longestDateItemObj:Object = dateList.dataProvider.getItemAt(0);
+        var labelWidth:Number = -1;
+        var maxWidth:Number = 0;
+        dateObj.date = 1;
+        dateObj.hours = 11;
+        dateObj.minutes = 0;
+        dateObj.seconds = 0;
+        dateObj.milliseconds = 0;
+        
+        // 1) find the longest month
         var longestMonth:int = 0;
-        var labelWidth:Number = -1;
-        var maxWidth:int = 0;
-        var dateStr:String;
-        dateObj.date = 1;
-        
-        // find the longest month
+        dateTimeFormatter.dateTimePattern = dayMonthDateFormatter.getMonthPattern();
+        
         for (var month:int = 0; month < 12; month++)
         {
             dateObj.month = month;
+           
             labelWidth = measureText(dateTimeFormatter.format(dateObj)).width;
             if (labelWidth > maxWidth)
             {

    // the NumberFormatter to identify the longest yearList item in DATE mode
    private var numberFormatter:NumberFormatter;
    
    private var dateObj:Date = new Date();
    private var use24HourTime:Boolean;
    
    // stores the longest dateList item and updates only when locale changes
    private var longestDateItem:Object;
    private var longestYearItem:Object;
    

    private function getLongestLabel(list:IList):Object
    {
        var idx:int = -1;
        var maxWidth:Number = 0;
        var labelWidth:Number;
        for (var i:int = 0; i < list.length; i++)
        {
