当前位置: 首页 > 面试题库 >

确定未来的时区转换

徐飞龙
2023-03-14
问题内容

我需要预测下一个至少2个时区转换何时将用于特定时区。

Java 8特别提供了新的java.timeAPI
java.time.zoneZoneRules.getTransitions()看起来确实正是我需要的东西,但是它没有列出“澳大利亚/悉尼”
2010年以后的任何东西。

确定下两个时区转换的日期/时间/偏移量的最可靠方法是什么?


问题答案:

该方法ZoneRules.getTransitions()不会列出所有过渡,直到无限远(显然)为止。这将获得以下两个过渡:

ZoneId zoneId = ZoneId.of("Australia/Sydney");
ZoneRules rules = zoneId.getRules();

ZoneOffsetTransition nextTransition = rules.nextTransition(Instant.now());
System.out.println("Next transition at: " +
        nextTransition.getInstant().atZone(zoneId));

ZoneOffsetTransition nextNextTransition =
        rules.nextTransition(nextTransition.getInstant());
System.out.println("Next transition after that at: " +
        nextNextTransition.getInstant().atZone(zoneId));

输出:

下一次转换时间:2016-10-02T03:00 + 11:00 [澳大利亚/悉尼]

之后的下一个过渡时间:2017-04-02T02:00 + 10:00 [澳大利亚/悉尼]



 类似资料:
  • 我需要在课堂上准确地将UTC时间转换为给定时区的当地时间,无论是否使用DST。我的问题是,当我使用时,我必须提供tm_isdst成员,或者让它-1自动确定。 现在我的问题来了。我与来自世界各地的交易所合作(来自芝加哥、纽约、圣保罗、墨尔本、布宜诺斯艾利斯、约翰内斯堡、上海、首尔……)。我有一张表,上面有每个交易所的时区名称:例如非洲/约翰内斯堡、美国/芝加哥、美国/温尼伯。 我正在研究的数据是一些

  • 问题内容: Web服务器是否可以通过标准方法确定网页中用户的时区? 也许来自HTTP标头或user-agent字符串的一部分? 问题答案: 该方法将从GMT中减去您的时间,并返回分钟数。因此,如果您住在GMT-8,它将返回480。 要将其乘以小时,除以60。此外,请注意,该符号与您需要的符号相反-它是计算GMT与您所在时区的偏移量,而不是您所在时区与GMT的偏移量。要解决此问题,只需乘以-1。 由

  • 好吧,我想问题已经在标题中完成了。没什么大不了的,但我只是想知道。我有一个返回正确值或错误代码枚举项的方法。例如这样的东西: 其中返回一个Future,而只是修改数据。 现在我已经直观地编写了< code>Future[_],因为返回值是灵活的。但是在查看其他库时,我看到了< code>Future[Any]的用法。当你在函数的返回中使用匹配用例来检查它是什么数据时,这似乎也是合乎逻辑的。 例如,

  • 我有一个日期。它是如何存储在数据库中的。我正在使用并调用此函数。 在这里,我知道我的

  • 我有一个对象,我想将其转换为

  • 问题内容: 我想将此GMT时间戳转换为GMT + 13: 我已经尝试过约100种不同的DateFormat,TimeZone,Date,GregorianCalendar等组合,以尝试执行此非常基本的任务。 这段代码可以满足我在当前时间的需求: 但是我想要的是设置时间而不是使用当前时间。 我发现任何时候我都尝试这样设置时间: 使用本地计算机的TimeZone。这是为什么?我知道,当“ new Da