package org.jboss.seam.example.booking; import java.text.DateFormat; import java.util.Date; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; @FacesConverter("org.jboss.seam.example.booking.RecentDateConverter") public class RecentDateConverter implements Converter { @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { throw new UnsupportedOperationException(); } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { Date then = (Date)value; Date now = new Date(); long timeNow = now.getTime(); long timeThen = then.getTime(); if (timeNow - timeThen < 120000) { return "" + ((timeNow - timeThen) / 1000) + " seconds ago"; } else if (timeNow - timeThen < 2*60000*60) { return "" + ((timeNow - timeThen) / 60000) + " minutes ago"; } else if (timeNow - timeThen < 60000*60*24) { return "" + ((timeNow - timeThen) / 60000*60) + " hours ago"; } else { return DateFormat.getDateInstance().format(then); } } }