当前位置: 首页 > 知识库问答 >
问题:

Java:timezone getTimeZone(“GMT-0700”)'timezone useDaylight不正确

谭毅然
2023-03-14
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,starttimeMode=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)?

共有1个答案

年高洁
2023-03-14

我想获得洛杉矶的时区信息,现在10/10/2017是夏令时

所以您应该请求“America/Los_Angeles”区域。这就是它在那里的用处。

“GMT-07:00”区域是一个固定偏移区域--它只适用于您想要表示“一个永久落后UTC七小时的时区”。这不适用于洛杉矶。

 类似资料:
  • 我想得到洛杉矶的时区信息,现在10/10/2017是夏令时,但是当我用两种方式得到洛杉矶的时区时,我得到了不同的结果。 结果是: 太阳util。日历ZoneInfo[id=“America/Los_Angeles”,offset=-2880000,dstSaves=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleT

  • 问题内容: 这是我需要处理的日期格式 但是我不了解最后两个部分。是固定的吗?应该是这样吗? 问题答案: 不,它不是固定的。这是一个时区。您可以将其与日期格式匹配。 更准确地说,采用SimpleDateFormat格式: 匹配零件。 是固定的。用一些引号将其转义。 z匹配部分。(PDT =太平洋夏令时间)。 PDT周围的括号是固定的。用括号将其转义。 您可以使用以下格式解析日期: 另一个要点 :包含

  • 但我不明白最后两个部分是什么。是否已修复?应该是这样的吗?

  • 问题内容: 苹果使用Etc / GMT时区的原因是什么,当苹果从App Store返回收据以进行自动续订时,该理由是什么。 Etc / GMT时区到底是什么时间?Java SDK是否了解该时区?还是我必须使用其他第三方库(如Joda- Time) ? 问题答案: Etc / GMT 与UTC或GMT 并不 完全相同。仅当偏移量为0时,它们表示时间上的同一时刻。在所有其他情况下,它们是完全不同的。

  • 我实际上对从endpoint调用的日期有一个问题: 返回的日期是UTC+1之前的1小时 但数据库中的日期是正确的(UTC+1) 我有以下设置: main.java: 我已将Hibernate设置为以下时区: 有人知道为什么通过endpoint返回的日期似乎是GMT吗?

  • 嗨,我对时区没有什么疑问: null 我在维基百科和许多相关网站上搜索过,但没有找到相关的解释