Bug 153842 BIRT Designer not storing date/time parameter value in locale-neutral format
In BIRT Designer, create a new report parameter of "Date/Time" type. In the default value dialog enter a date/time string valid for the user locale. In my case, I am on US English locale and I entered a date string "1/23/2006 4:56pm". View the report design XML file and you find: <scalar-parameter name="dateParam" id="6"> <property name="defaultValue">1/23/2006 4:56 pm</property> ... The default value string is stored in the format that's only valid for the current locale. EXPECTED BEHAVIOR: Date/time value should be stored in one of the following locale-neutral formats. Complete date: YYYY-MM-DD (eg 1997-07-16) Complete date plus hours and minutes: YYYY-MM-DDThh:mm (eg 1997-07-16T19:20) Complete date plus hours, minutes and seconds: YYYY-MM-DDThh:mm:ss (eg 1997-07-16T19:20:30) Complete date plus hours, minutes, seconds and a decimal fraction of a second YYYY-MM-DDThh:mm:ss.s (eg 1997-07-16T19:20:30.45)
UI/org.eclipse.birt.report.designer.core/src/org/eclipse/birt/report/designer/util/DEUtil.java
String result = str;
		for ( int i = 0; i < chars[0].length; i++ )
		{
			result = result.replaceAll( chars[0][i], chars[1][i] );
		}
		return result;
	}
	/**
	 * Gets decimal string given the number of zeros.
	 */
	public static String getDecmalStr( int decPlaces )
	{
		String defaultDecs = "0000000000"; 
		String decStr = ""; 
		if ( decPlaces > 0 && decPlaces < 10 )
		{
			decStr = defaultDecs.substring( 0, decPlaces );
		}
		else if ( decPlaces >= 10 )
		{
			if ( decPlaces > 100 )
			{
				decPlaces = 100;
			}
			int quotient = decPlaces / 10;
			int remainder = decPlaces % 10;
			StringBuffer s = new StringBuffer( 100 );
			for ( int i = 0; i < quotient; i++ )
			{
				s.append( defaultDecs );