【问题标题】:What is the joda-time equivalent of few JDK TimeZone functions几个 JDK TimeZone 函数的 joda-time 等价物是什么
【发布时间】:2011-06-19 17:30:57
【问题描述】:

JDK 中以下方法的 joda-time 等效项是什么。

  1. TimeZone.getOffset()
  2. TimeZone.getRawOffset()
  3. TimeZone.inDaylightTime()
  4. TimeZone.useDaylightTime()
  5. TimeZone.getDSTSavings()

我的主要想法是按照大多数 SO 帖子的建议将以下内容存储在数据库中

  1. UTC 时间 = joda Instant
  2. 时区偏移 = joda 中的等价物?
  3. dst offset = joda 中的等价物?

我还应该存储 RawOffset 还是 DST 调整后的偏移量?

【问题讨论】:

    标签: java datetime timezone jodatime dst


    【解决方案1】:
    1. DateTimeZone.getOffset()
    2. DateTimeZone.getStandardOffset()
    3. ! DateTimeZone.isStandardOffset()
    4. ! DateTimeZone.isFixed()
    5. 不确定。

    如果您只保存 UTC 时刻和时区 ID(即美国/纽约和欧洲/伦敦,而不是 EST 和 GMT),那么您无需担心存储原始偏移量。特别是当偏移量随着烦人的频率而变化时。让 Joda 和 tz 数据库为您完成所有工作。所以存储:

    1. ReadableInstant.getMillis()
    2. DateTimeZone.getId()

    对于 Java 8,只需使用通过 DateTimeFormatter.ISO_ZONED_DATE_TIME 持久化的 ZonedDateTime

    【讨论】:

    • 根据以下链接,建议存储所有三个偏移量。可能是我错过了一些东西。 stackoverflow.com/questions/2532729/…
    • @Pangea - 正如评论指出的那样,这已经完成了。时区 id 对自 1970 年以来标准和 DST 偏移量的每一次更改进行编码,因此无需自己动手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2023-01-17
    • 2021-08-14
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多