DateUtil.java

package org.flasby.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class DateUtil {
	private final String timestampPattern;
	private final TimeZone tz;
	
	public static final String DEFAULT_PATTERN = "yyyMMdd-HH:mm:ss";
	
	private final ThreadLocal<DateFormat> DATEFORMAT = new ThreadLocal<DateFormat>() {
		@Override
		protected DateFormat initialValue() {
			SimpleDateFormat f = new SimpleDateFormat(timestampPattern);
			f.setTimeZone(tz);
			return f;
		}
	};

	public DateUtil() {
		this( DEFAULT_PATTERN, TimeZone.getDefault() );
	}
	
	public DateUtil(String timestampPattern) {
		this( timestampPattern, TimeZone.getDefault() );
	}
	
	public DateUtil(TimeZone tz) {
		this( DEFAULT_PATTERN, tz );
	}
	
	public DateUtil(String timestampPattern, TimeZone tz) {
		this.timestampPattern = timestampPattern;
		this.tz = TimeZone.getTimeZone(tz.getID());
	}

	public String getDate( Date date ) {
		return DATEFORMAT.get().format(date);
	}

}