我想獲取洛杉磯的時區信息,現在10/10/2017是夏令時, 但是當我獲得不同的結果時以兩種方式在洛杉磯獲得時區。java:timezone getTimeZone(「GMT-0700」)'timezone useDaylight不正確
public class TimeZoneDemo2 {
public static void main(String[] args) {
TimeZone timeZoneLosAngeles =
TimeZone.getTimeZone("America/Los_Angeles");
System.out.println(timeZoneLosAngeles);
TimeZone timeZoneGmtMinus07 = TimeZone.getTimeZone("GMT-07:00");
System.out.println(timeZoneGmtMinus07);
}
}
結果是:
sun.util.calendar.ZoneInfo [ID = 「美國/洛杉磯」,偏移= -28800000,dstSavings = 3600000,useDaylight =真,過渡= 185, lastRule = java.util.SimpleTimeZone中[ID =美洲/洛杉磯,偏移= -28800000,dstSavings = 3600000,useDaylight =真,startYear = 0,STARTMODE = 3,startMonth = 2,朝九特派= 8,startDayOfWeek = 1,開始時間= 7200000 ,startTimeMode = 0,endMode = 3,endMonth = 10,endDay = 1,endDayOfWeek = 1,endTime = 7200000,endTimeMode = 0]]
sun.util.calendar.ZoneInfo [id =「GMT-07:00 」,偏移= -25200000,DS tSavings = 0,useDaylight =假,轉換= 0,lastRule = NULL]
我的問題是:有關夏令由 「美國/洛杉磯」 獲得時區信息的時間信息。爲什麼不在夏令時信息(useDaylight = false)中包含「GMT -0700」獲取的時區信息?
你的意思是'TimeZone.getTimeZone(String)'的結果取決於當前時間是不正確的。 –
GMT-7有多個地點http://www.mapstudio.co.za/wp-content/uploads/2014/02/9781770265646.jpg它如何知道你的意思是洛杉磯的? –
'GMT-07:00'是一個**偏移量**(與UTC不同),而「America/Los_Angeles」是一個**時區**(一組地區在歷史中使用的所有偏移量),詳細瞭解區別[這裏](https://stackoverflow.com/tags/timezone/info)。如前所述,有超過1個時區[使用相同的偏移量](https://en.wikipedia.org/wiki/List_of_UTC_time_offsets#UTC.E2.88.9207:00.2C_T),所以只有擁有GMT-7時, [不能說哪個時區是](https://stackoverflow.com/q/36629250/7605325) – 2017-10-10 12:54:16