将时区存储为ID字符串或与UTC的偏移量?

时间:2012-05-01 20:44:25

标签: java datetime date timezone jodatime

当存储给定日期的时区时,通过保持时区的ID字符串(例如Joda的DateTimeZone.getId())与保存UTC的本地时间偏移(例如Joda的DateTimeZone.getOffset()),可以获得特别的优势吗? )?

虽然Joda的DateTimeZone和JDK的TimeZone似乎共享ID字符串,但似乎保存偏移量将更加与语言无关。

2 个答案:

答案 0 :(得分:1)

答案取决于你的用例。偏移量与语言无关,但可能需要将其解释回ID以供用户选择。大多数用户不知道他们的偏移是什么。 另一方面,如果您可以合理地期望用户知道他们的偏移量,那么您不需要解释。 这更像是一个设计决策,然后才是最佳实践问题。

答案 1 :(得分:1)

仅使用偏移存储您不会知道夏令时等。来自文档的示例:“使用此系统,America / Los_Angeles在夏天表示为UTC-08:00或UTC-07:00”< / p>