3

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

  1. 时区.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 调整的偏移量?

4

1 回答 1

4
  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 中,只需使用ZonedDateTime持久化的DateTimeFormatter.ISO_ZONED_DATE_TIME.

于 2011-02-02T16:53:19.213 回答