flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Justin Mclean (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLEX-33658) Using the mx:DateFormatter in Actionscript no longer produces the same results
Date Fri, 09 Aug 2013 03:52:47 GMT

    [ https://issues.apache.org/jira/browse/FLEX-33658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13734367#comment-13734367

Justin Mclean commented on FLEX-33658:

Welcome to the wonderful world of international dates, some places use MM/DD/YYYY and others

If format is passed a string, it trys to work out if month or day should come first like so.

var monthFirst:Boolean = year != -1;
if (format)
	monthFirst = monthFirst || format.search("M") < format.search("D");

Basically if it not found something that is likely to be a year, it looks at the format string
to see if a month or day come first, but as your format string doesn't contain days that check

It might be possible to extend this and also take a guess based on the current locale or change
the logic above so that it only does the check when both M and D are there.

Another solution is to change your format function to be like this:
private function monthDisplay(item:String):String
	var df:DateFormatter = new DateFormatter()
	return df.format(new Date(item));  		

Or by changing the format of your date strings to YYYY-MM-DD.
> Using the mx:DateFormatter in Actionscript no longer produces the same results
> ------------------------------------------------------------------------------
>                 Key: FLEX-33658
>                 URL: https://issues.apache.org/jira/browse/FLEX-33658
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Advanced Data Grid
>    Affects Versions: Apache Flex 4.10.0
>            Reporter: William Page
> Here is the code…
> 			var j:int = 0;
> 			for (i=minNum;i<length;i++)  {   
> 				oColumnDef = new AdvancedDataGridColumn();
> 				oColumnDef.headerText = MonthDisplay(modelLocator.aryMonths.getItemAt(i).begDate);
> 				oColumnDef.dataField = "s"+[j+1];
> 				oColumnDef.width = 100;
> 				oColumnDef.labelFunction=dgCurFormat12
> 				oColumnDef.setStyle("textAlign","right")
> 				colArray.push(oColumnDef);
> 				j=j+1;
> 			}
> 			private function MonthDisplay(item:String):String{		
> 				var df:DateFormatter = new DateFormatter()
> 				df.formatString="MMM-YYYY";
> 				return df.format(item);  		
> 			}	
> aryMonths contains dates like these ('07/01/2013', '06/01/2013', '05/01/2013', '04/01/2013',
'03/01/2013', etc)
> The header text ends up showing Jan-2013,  Jan-2013,  Jan-2013,  Jan-2013,  Jan-2013
> It seems that the DateFormatter is reading the date in reverse order Day-Month-Year when
applying the format…Versus Month-Day-Year…Is there a way to resolve this without rewriting
all my database scripts to reformat dates?

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message