import java.text.FieldPosition; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class Dates { private final static long EPOCH = 1234567890; private final static String TEXT = "2009-02-13T23:31:30"; private static void expect(boolean v) { if (! v) throw new RuntimeException(); } public static void main(String[] args) throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = format.parse("1970-01-01T00:00:00"); expect(0 == date.getTime()); date = new Date(EPOCH * 1000l); String actual = format.format(date, new StringBuffer(), new FieldPosition(0)).toString(); expect(TEXT.equals(actual)); date = format.parse(TEXT); expect(EPOCH == date.getTime() / 1000l); } }