我的理解是,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