package org.msh.utils; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.intercept.BypassInterceptors; import org.jboss.seam.international.LocaleSelector; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; @Name("dateURLConverter") @org.jboss.seam.annotations.faces.Converter(id="dateURLConverter") @BypassInterceptors public class DateURLConverter implements Converter { public Object getAsObject(FacesContext facesContext, UIComponent comp, String txt) { Locale locale = LocaleSelector.instance().getLocale(); Calendar c = Calendar.getInstance(locale); int ano = Integer.parseInt(txt.substring(0, 4)); int mes = Integer.parseInt(txt.substring(4, 6)); int dia = Integer.parseInt(txt.substring(6, 8)); c.set(Calendar.YEAR, ano); c.set(Calendar.MONTH, mes); c.set(Calendar.DAY_OF_MONTH, dia); return c.getTime(); } public String getAsString(FacesContext facesContext, UIComponent comp, Object obj) { Date dt = (Date)obj; Calendar c = Calendar.getInstance(); c.setTime(dt); NumberFormat df = DecimalFormat.getCurrencyInstance(); ((DecimalFormat)df).applyPattern("0000"); String s = df.format(c.get(Calendar.YEAR)); ((DecimalFormat)df).applyPattern("00"); s += df.format(c.get(Calendar.MONTH)) + df.format(c.get(Calendar.DAY_OF_MONTH)); return s; } }