ruby - 如何存储夏令时调整后的utc时间

标签 ruby datetime

我正在创建一个需要存储日期和时间的应用程序。目前,我正在创造这样的时间:

Time.strptime("2013-12-08 04:15pm PST", "%Y-%m-%d %H:%M%P %Z")
=> 2013-12-09 00:15:00 +0000

我很乐意将其存储在数据库中,但我的问题是关于夏令时的。当我这样做时:

Time.strptime("2013-06-08 04:15pm PST", "%Y-%m-%d %H:%M%P %Z")
=> 2013-06-09 00:15:00 +0000

它似乎没有针对夏令时进行 self 调整。我这样想错了吗?我怎么知道当我创建一个具有时间属性的对象时,我将能够在将来检索到该确切时间?

我怎样才能最好地从用户那里读取字符串日期,将其保存在数据库中的 utc 中,并在以后检索它以准确显示而不用担心 DST?

我知道很多答案都说在 rails 中使用 config.time_zone,但我的应用程序最终会跨时区。

最佳答案

PST太平洋标准时间。如果你想要夏令时,字符串是 PDT。我认为如果您将 PST 转换为 PDT,它将执行您想要的操作。

# this is summer (PDT)
Time.strptime("2013-06-08 04:15pm PDT", "%Y-%m-%d %H:%M%P %Z") 

# this is winter (PST)
Time.strptime("2013-12-08 04:15pm PST", "%Y-%m-%d %H:%M%P %Z")

关于ruby - 如何存储夏令时调整后的utc时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233285/

相关文章:

python - 在 python 中查找一年中以周六结束的一周和至少包含 4 天的第一周

javascript - setTimeout 与日期对象

python - 使用Python从MySQL数据库中提取两个日期时间之间的数据

javascript - ruby 是否有相当于 javascript 的 Array.prototype.every 方法?

ruby - 转换集合

ruby - 我如何在 capybara 中单击此按钮(使用 'ID' 或 'Xpath' 选择器)

javascript - 检查日期是否在日期范围之间

c# - 使查询表达式忽略时间并仅过滤日期

ruby - 使用 Nokogiri 抓取内容时如何排除嵌套元素?

ruby - 如果将行推到 80 个字符以上,我是否应该不使用三元表达式?