我不想在我的网络应用程序中管理用户的不同时区,但我不知道从哪里开始。我必须将每个用户的本地时间保存在我的数据库中?,或者可能转换为UTC时间,保存它,然后再次进行转换以显示它?还是有另一种方法?例如,如果我的一个用户在当地时间预约,我必须将其转换为UTC将其存储在我的数据库中,然后当他需要时,再将其转换为当地时间显示它?顺便说一下,我正在使用Django。感谢。
答案 0 :(得分:2)
将日期/时间存储为UTC(不确定Python的命令是什么)
输出日期时,将它们包装在获取当前用户时区偏好的辅助函数中,然后调整偏移的时间/日期,然后从应用程序输出。
答案 1 :(得分:1)
尝试使用Django snippit UTC DateTime field 。它实际上拥有您开箱即用所需的一切。
答案 2 :(得分:1)
转换为UTC时间,保存,然后再次进行转换以显示它?
是的,即使您只有一个本地时区,通常也应该将日期作为UTC时间戳存储在数据库中,并将其转换为Web应用程序输入和输出阶段中相应时区的文本。如果您存储了每个用户的时区,则可以轻松切换自定义时区的默认时区。
pytz是选择和转换时区的常用解决方案。 (虽然我亲自把自己不那么庞大的时区收集起来。)
答案 3 :(得分:0)
使用单个“数据库时间”时区是IMO最好的选择,因为: -
所以,是的。将用户的时区存储在数据库中,然后将所有时间存储在公共时间(如UTC)。当用户查看包括时间的任何内容时转换它们。这是最简单的解决方案,不仅强迫所有用户假装在同一时区。