Что такое joda-time-эквивалент нескольких функций JDK TimeZone - PullRequest
3 голосов
/ 02 февраля 2011

Что такое joda-time эквивалент следующих методов в JDK.

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

Моя основная идея заключается в том, чтобы сохранить нижеследующее в базе данных, как было предложено большинством SOposts

  1. время в UTC = йода Мгновенное
  2. смещение часового пояса = что эквивалентно в joda?
  3. смещение dst = что эквивалентно в joda?

Также я должен хранить RawOffset или смещение, отрегулированное DST?

1 Ответ

4 голосов
/ 02 февраля 2011
  1. DateTimeZone.getOffset ()
  2. DateTimeZone.getStandardOffset ()
  3. ! DateTimeZone.isStandardOffset ()
  4. ! DateTimeZone.isFixed ()
  5. Не уверен.

Если вы просто сохраните момент времени UTC и идентификатор часового пояса (т. Е. Америка / Нью-Йорк и Европа / Лондон, а не EST и GMT), вам не нужно беспокоиться о сохранении исходных смещений. Тем более, что смещения меняются с раздражающей частотой. Пусть Joda и база данных tz сделают всю работу за вас. Так хранить:

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

В Java 8 просто используйте ZonedDateTime, сохраняемый через DateTimeFormatter.ISO_ZONED_DATE_TIME.

...