Mega Code Archive

 
Categories / Java / Development Class
 

Time Format

import java.text.DateFormat; import java.text.FieldPosition; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; /**  * TimeStampFormatter.  * <p/>  * Date: Sep 17, 2005  * Time: 1:01:13 PM  *  * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>  */ public class TimeFormat extends DateFormat {     private static final long ONE_SECOND = 1000l;     private static final long ONE_MINUTE = ONE_SECOND * 60l;     private static final long ONE_HOUR = ONE_MINUTE * 60l;     private static final long ONE_DAY = ONE_HOUR * 24l;     private SimpleDateFormat secondsFormat = new SimpleDateFormat("s's'");     private SimpleDateFormat minuteFormat = new SimpleDateFormat("m'm'");     private SimpleDateFormat hourFormat = new SimpleDateFormat("H'h'");     private DateFormat fullFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM);     public TimeFormat() {         final TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");         minuteFormat.setTimeZone(utcTimeZone);         hourFormat.setTimeZone(utcTimeZone);     }     public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {         long time = date.getTime();         if (time >= ONE_DAY * 365) {             return fullFormat.format(date, toAppendTo, fieldPosition);         }         if (time >= ONE_DAY * 3) {             toAppendTo.append(time / ONE_DAY);             toAppendTo.append('d');             if (time % ONE_DAY != 0) {                 hourFormat.format(date, toAppendTo, fieldPosition);             }         }         else if (time >= ONE_HOUR) {             toAppendTo.append(time / ONE_HOUR);             toAppendTo.append('h');         }         if (time >= ONE_MINUTE && time % ONE_HOUR !=0) {             minuteFormat.format(date, toAppendTo, fieldPosition);         }         if (time >= ONE_SECOND && time % ONE_MINUTE !=0) {             secondsFormat.format(date, toAppendTo, fieldPosition);         }         return toAppendTo;     }     public Date parse(String source, ParsePosition pos) {         throw new RuntimeException("Not implemented.");     } }