2012-05-01 24 views
0

当存储给定日期的时区时,通过保存时区的ID字符串(例如Joda的DateTimeZone.getId())与保存UTC的本地时间偏移(例如Joda的DateTimeZone.getOffset())有什么特别的优势?将时区存储为ID字符串或与UTC的偏移量?

虽然Joda的DateTimeZone和JDK的TimeZone似乎共享ID字符串,但似乎保存偏移量是更多的语言不可知的。

回答

1

答案取决于你的用例。偏移是语言不可知的,但可能需要解释回用户可以选择的ID。大多数用户不知道他们抵消的是什么。另一方面,如果你是用户可以合理地预期知道他们的抵消,那么你不需要解释。 这更多的是设计决定,那么这是一个最佳实践问题。

1

仅用偏移量存储,您不会知道夏令时等。doc中的示例:“使用此系统时,America/Los_Angeles表示为UTC-08:00,或夏季表示为UTC-07:00”

+0

我想我错过了一些东西。据我了解,偏移量确实为夏令时做了解,如您的示例:“UTC-08:00,或夏季的UTC-07:00”。 您不一定能够从偏移量中确定实际时区,但您可以从UTC重建本地时间。这是正确的吗? – HolySamosa

+0

重建当地时间?只有当您保存该偏移量之后,您尚未通过该时区的两个夏令时之一(如果在该时区中有)。是的,你也无法确定实际的时区。 –

+0

得到了你。我明白你的意思。 – HolySamosa

相关问题