gpt4 book ai didi

java: timezone getTimeZone ("GMT-0700")' timezone useDaylight 不正确

转载 作者:行者123 更新时间:2023-12-04 20:44:36 26 4
gpt4 key购买 nike

我想获取洛杉矶的时区信息,现在10/10/2017是夏令时,但是我通过两种方式获取洛杉矶的时区得到了不同的结果。

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="America/Los_Angeles",offset=-28800000,dstSavings=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleTimeZone[id=America/Los_Angeles,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]

sun.util.calendar.ZoneInfo[id="GMT-07:00",offset=-25200000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]

我的问题是:“America/Los_Angeles”获取的时区信息中关于夏令时的信息。为什么在“GMT -0700”获取的时区信息中不包含夏令时信息(useDaylight = false)?

最佳答案

I want to get the time zone information for Los Angeles, now 10/10/2017 is daylight saving time

因此您应该请求“America/Los_Angeles”区域。这就是它的用途。

“GMT-07:00”时区是一个固定偏移量时区 - 它仅适用于您想要表示“永久比 UTC 晚 7 小时的时区”。这不适用于洛杉矶。

还有许多其他时区有时为 UTC-7 - 为什么您认为 GMT-07:00 表示“洛杉矶观察到的时区”?

换句话说,Java 正在做正确的事情——您对“GMT-07:00”时区含义的期望是不正确的。

关于java: timezone getTimeZone ("GMT-0700")' timezone useDaylight 不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46660803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com