如何为不同位置的django用户处理日期时间?

恩杜杰

我有一个使用Django和Django REST Framework构建的应用程序。用户可以将某些对象添加到数据库并为其设置到期日期。其他用户将从数据库中检索那些添加的项目,并将在客户端显示。创建对象的用户和检索对象的用户都可能位于世界的不同地方。

我计划将日期时间存储为UTC格式。如何在存储之前确保日期时间为UTC格式,并且当用户尝试检索其中一项时,日期时间是否正确显示在其时区中?

我在想什么

我在想我应该将其转换为UTC(客户端)并将其保存到数据库中,然后当用户检索该对象时,我将以UTC(从数据库)返回该对象并将时间更改为用户的本地时间客户端-侧。这是一个好方法吗?

凯文·克里斯托弗·亨利

简要地说:如果您依靠客户知道正确的时区,那么您的解决方案就是一个很好的解决方案。

一些注意事项:

  • Django不需要您将任何内容转换为UTC进行存储,它将为您做到这一点。也就是说,在客户端上获取UTC值是有道理的(实际上,这是Flutter API唯一明智的选择)。

  • Web应用程序中的最佳实践是允许用户将时区存储为用户首选项。这样,他们可以控制时区,而不必管碰巧使用的任何计算机和浏览器。在移动应用程序中,这可能没什么要担心的,在移动应用程序中,人们可以假设人们正在使用自己的设备。

    如果你这样做,最好的办法就是让Django的本地化时间本身序列化过程中(像这样)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章