我不想在当地时区存储时间,但续集让我感觉非常艰难。我可以在将它们放到那里之前将它们设置为UTC(有点痛苦),但是当我将它们取出时,它假定它们是本地日期,然后它们都是未来8小时。这是否还没有实施?如果是这样,是否有任何解决方法?谢谢!使用UTC与续集?
6
A
回答
3
最简单的尝试将它们放入UTC的方式是覆盖正在使用的数据集类的literal_datetime和/或literal_time,以返回UTC时间的文字字符串。
以UTC取出它们取决于您使用的适配器。例如,postgres适配器调用Sequel.string_to_datetime,它只是在Sequel.datetime_class(默认为Time)上调用解析。如果日期时间列包含时区信息,事情应该正常工作。如果它不包含时区信息,则Time.parse将假定它被赋予当地时间。在这种情况下,您可能希望覆盖Sequel.string_to_datetime以确保它始终以UTC偏移返回时间(可能通过调用Time.parse(s).gmtime)。
5
我自己也有一个非常类似的问题。
此信息已从Sequel RDoc
续集拍摄可使用时间或日期时间 从数据库返回的时间。 它默认为时间。将其更改为 日期时间,使用方法:
Sequel.datetime_class = DateTime
另外,还要确保你不存储在数据库中的时区信息。 我使用Postgres,列类型为时间戳,没有时区。
这应该导致显示的日期/时间以UTC表示。在日期/时间传递的2009-07-13T03时,它已经为我工作:22:53Z结果显示为2009-07-13T03:22:53 + 00:00
18
这是有点过时了,但我相信这里的最佳解决方案已经改变,因为原来的答案已发布。如果你设置了
Sequel.default_timezone = :utc
续集将把所有的时间视为UTC并且不会显示问题中描述的行为。
查找更多的信息在http://sequel.jeremyevans.net/rdoc/classes/Sequel/Timezones.html
相关问题
- 1. 使用UNION与续集
- 2. 使用续集
- 3. 续集OR与空
- 4. 如何使用续集
- 5. 如何使用续集
- 6. 与Git的持续集成
- 7. 与Grails持续集成
- 8. Docker与AWS持续集成
- 9. 与VSTS的持续集成
- 10. 与GitHub的持续集成
- 11. Ramaze与续集迁移?
- 12. 获取与续集当月
- 13. 与mysql的持续集成
- 14. 使用utc timestamp与python 2.7比较datetime.now()
- 15. NSDateFormatter不与UTC
- 16. 与Laravel持续集成与开发
- 17. PHP-ew DateTimeZone()与UTC-5或UTC + 5
- 18. 使用UTC使用jQuery
- 19. isAuthenticated总是假,而使用护照与续集
- 20. 无法使用续集gem与postgres数据库断开
- 21. 使用续集和puma创建与postgresql数据库的连接
- 22. 渐进式建筑可与持续集成结合使用吗?
- 23. 使用TFS与VM进行持续集成构建
- 24. :JavaScript与ActionScript创建与UTC
- 25. PHP:使用strtotime将pcihart使用的UTC UTC日期
- 26. 要使用哪个连续集成库?
- 27. 通过Integrity持续集成使用RVM
- 28. 个人使用的持续集成
- 29. 使用ASP.Net进行持续集成MVC
- 30. 使用android studio持续集成jenkins