代码之家  ›  专栏  ›  技术社区  ›  Phil Kulak

使用UTC和Sequel?

  •  7
  • Phil Kulak  · 技术社区  · 17 年前

    3 回复  |  直到 15 年前
        1
  •  3
  •   Jeremy Evans    17 年前

    这在这一点上有点过时,但我相信,自从最初的答案发布以来,这里的最佳解决方案已经发生了变化。如果你设置

    Sequel.default_timezone = :utc
    

    http://sequel.jeremyevans.net/rdoc/classes/Sequel/Timezones.html

        2
  •  21
  •   pyrmont Michael Wasser    12 年前

    此信息取自 Sequel RDoc

    Sequel可以使用Time或DateTime 对于从数据库返回的时间。 DateTime,使用:

    Sequel.datetime_class = DateTime
    

    还要确保不要将时区信息存储在数据库中。

    2009年7月13日凌晨3:22:53Z 2009年7月13日凌晨3:22:53+00:00

        3
  •  5
  •   Luke Antins    17 年前

    尝试将它们作为UTC输入的最简单方法是重写您用于返回UTC时间的文本字符串的数据集类的literal_datetime和/或literal_time。

    在UTC中获取它们取决于您使用的适配器。例如,postgres适配器调用Sequel.string_to_detime,它只调用Sequel.datetime_class上的parse(默认情况下为Time)。如果datetime列包含时区信息,则一切应该正常。如果它不包括时区信息,Time.parse将假设它是给定的本地时间。在这种情况下,您可能需要重写Sequel.string_to_datime,以确保它始终返回UTC偏移的时间(可能通过调用time.parse(s).gmtime)。

    推荐文章