对于时间分为 本地挂钟时间 和 UTC时间,所谓的UTC时间就是指表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数,毫无疑问这个时间所有计算机都是一样的。那么我们任务栏上的时间是怎么回事呢?那是OS会把计算机所在的当前时区加上,如:中国在东八区,就会在UTC 时间上加上 8(小时)*60*60*1000作为本地挂钟时间(不考虑夏令时)。

 

public class TimeZoneConversion {
    public static void main(String[] args) {
        Calendar cal1 = Calendar.getInstance();
        cal1.set(2001, 7, 1, 0, 0, 0);
        System.out.println(cal1.getTime());
        System.out.println(cal1.get(Calendar.MONTH));
        System.out.println(cal1.get(Calendar.DATE));
        System.out.println(cal1.get(Calendar.HOUR_OF_DAY));
        System.out.println(cal1.getTimeZone().getID());
        cal1.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println(cal1.getTime());
        System.out.println(cal1.getTimeZone().getID());
        System.out.println(cal1.get(Calendar.MONTH));
        System.out.println(cal1.get(Calendar.DATE));
        System.out.println(cal1.get(Calendar.HOUR_OF_DAY));
    }
}