package com.showme;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class DateTest {
public static void main(String[] args) throws ParseException {
Date date = new Date(1);
System.out.println(date.toString());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(simpleDateFormat.format(date));
Date parse = simpleDateFormat.parse("Thu Jan 01 08:00:00 EST 1970");
System.out.println(simpleDateFormat.format(date));
System.out.println(parse.getTime());
System.out.println("------------");
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz");
simpleDateFormat2.setTimeZone(TimeZone.getTimeZone("GMT"));
String format2 = simpleDateFormat2.format(new Date(1));
Date parse2 = simpleDateFormat2.parse("1970-01-01 08:00:00 CST");
String format3 = simpleDateFormat2.format(new Date(1));
System.out.println(format2);
System.out.println(parse2.getTime());
System.out.println(format3);
}
}
运行结果
Thu Jan 01 08:00:00 CST 1970
Thu Jan 01 00:00:00 GMT 1970
Wed Dec 31 19:00:00 EST 1969
46800000
------------
1970-01-01 00:00:00 GMT
0
1970-01-01 08:00:00 CST
总结:时间戳全球是统一的,只是大家的显示方式不一样.也就是 date.toString() 的显示方式有差异.当SimpleDateFormat设置了时区后,会以该时区的方式显示时间(也就是date.toString()). parse 也会是以该时区的方式转换date.
注意:SimpleDateFormat 的 parse 方法转换成功后,会更新自己的时区与字符串中的时区一致的.