我想获取洛杉矶的时区信息,现在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