我的理解是,PST与GMT/UTC相差8小时。但是,当我打印出来时,我发现只有7小时的差异。你能解释我在这里做错了吗?打印GMT和PST时间戳仅显示7小时的差异
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
Date date = sdf1.parse("2014-05-01 13:31:03.7");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmssS");
df.setTimeZone(TimeZone.getTimeZone("PST"));
System.out.println(df.format(date));
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(date));
df.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(df.format(date));
打印:
20140501_1331037
20140501_2031037
20140501_2031037
避免在时区中使用3或4个字母代码。这些代码既不标准也不唯一。使用[适当的时区名称](http://en.m.wikipedia.org/wiki/List_of_tz_database_time_zones)。这些名称主要是大陆,斜线和城市或地区的组合。对于美国西海岸,“美国/洛杉矶”。对于加拿大东部,“美国/蒙特利尔”。 –
如果使用Joda-Time或java.time而不是java.util.Date/.Calendar,则处理时区会更容易。 –
为了记录,我将我的代码转换为使用Joda时间,如上所示。 – MedicineMan