package com.appirio.report; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class ValueFormatters { public enum NumberFormatEnum { CurrencyWithoutFractionDecimalType, CurrencyWithFractionDecimalType, NumberWithoutFractionDecimalType, NumberWithFractionDecimalType, NumberWithOneDecimalType } public static String formatDate(String value) { SimpleDateFormat inputDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat outputDateFormat = new SimpleDateFormat("MM/dd/yyyy"); String formattedDate = null; Date dateDate = null; try { dateDate = inputDateFormat.parse(value); formattedDate = outputDateFormat.format(dateDate); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return formattedDate; } public static String formatNumber(NumberFormatEnum numberFormat, String value) { String returnValue = null; DecimalFormat decimalFormat = null; switch(numberFormat) { case NumberWithoutFractionDecimalType: decimalFormat = new DecimalFormat("#,###,###,##0"); break; case NumberWithFractionDecimalType: decimalFormat = new DecimalFormat("#,###,###,##0.00"); break; case NumberWithOneDecimalType: decimalFormat = new DecimalFormat("#,###,###,##0.0"); break; case CurrencyWithoutFractionDecimalType: decimalFormat = new DecimalFormat("$#,###,###,##0"); break; case CurrencyWithFractionDecimalType: decimalFormat = new DecimalFormat("$#,###,###,##0.00"); break; } // Use NumberFormat to format and parse numbers for the US locale NumberFormat nf = NumberFormat.getNumberInstance(Locale.US); // Get a NumberFormat instance for US locale // set return value to be as formatted double value try { double doubleValue = nf.parse(value).doubleValue(); returnValue = decimalFormat.format(doubleValue); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return returnValue; } }