通常,Rails会以UTC时间在数据库中存储所有时间。如果您将时区设置为其他区域,则在保存到数据库或从中检索时,它会在该区域和UTC之间自动转换。
这种方法有哪些优点?有什么缺点吗?有没有办法让Rails使用不同的时区?
我认为的一些优势可能是:
我能想到的唯一缺点是,对于所有用户实际位于同一时区的内部应用程序,这种差异使得根据本地时间运行原始SQL查询变得更加困难。
答案 0 :(得分:7)
这个问题有一点宗教感觉,但我会根据我的个人经验回答这个问题。
始终以明确的形式存储日期。在UTC中存储日期几乎就是这方面的标准。
优点:
缺点:
你可以让铁杆做一些与众不同的事吗?可能,但我从来没有尝试,因为它只是太多的工作来对抗恕我直言是一个明智的设计。
从'just use my timezone'意义上使用UTC是否有意义?是。您的服务器可能位于加利福尼亚州,您的用户位于纽约,并且在这种情况下决定当地时间。服务器?用户?迈克,他刚刚出差一周在伦敦?在这种情况下,你使用什么时区?