我们将每个用户的时区保存为该时区的ID。
问题是,每次更新tzdata包时,ID都会发生变化,这会更改用户保存的时区。
有什么方法可以确保用户保存的时区始终保持一致?
谢谢!
答案 0 :(得分:0)
问题的原因是程序员认为将可用时区列表视为固定列表会更容易,并将用户自己的时区存储为列表中的时区位置。
,即如果欧洲/柏林曾经位于时区列表中的第100位,那么这就是为数据库中的用户存储的数字。但是如果使用新的时区更新了包tzdata,那么在位置100你会对欧洲/贝尔格莱德很好,并且用户实际上会为他们定义错误的时区。
解决方案是将存储的所有旧ID号转换为显示为时区的相关真实字符串。这样,当下次更新tzdata时,用户将保留其当前时区。