1

We are saving the timezone for each user as the ID of that timezone.

The problem is, that every time that the tzdata package is updated, there are changes in the IDs, and this changes the users saved timezones.

What way is there to ensure that the users saved timezones will always remain consistent?

Thanks!

4

1 回答 1

0

问题的原因是程序员认为将可用时区列表视为固定列表会更容易,并将用户自己的时区存储为列表中的时区位置。

即,如果 Europe/Berlin 曾经在时区列表中位于第 100 位,那么这就是为数据库中的用户存储的数字。但是,如果包 tzdata 更新了新的时区,那么在位置 100 你会罚款欧洲/贝尔格莱德,并且用户将有效地为他们定义错误的时区。

解决方案是将存储的所有旧 ID 号转换为显示为时区的相关真实字符串。这样,下次更新 tzdata 时,用户将保留其当前时区。

于 2014-10-05T08:14:52.573 回答