【问题标题】:Ruby: change time zone issue [closed]Ruby:更改时区问题[关闭]
【发布时间】:2013-11-11 10:14:49
【问题描述】:

我正在尝试在 Ruby 中更改以下内容: 时间.now.utc 至 时间.now.pst

但是,它不起作用。你觉得我错过了什么? 谢谢! 梅尔

【问题讨论】:

  • 如果您展示您编写的代码并更好地解释它是如何“不工作”的,将会有所帮助。
  • 嗨,马特,确定它是以下内容:start_date => Time.now.utc, :end_date => (Time.now.utc + @project.funding_closed_at.to_i.days).utc 我需要将 UTC 更改为 PST,但是当我这样做时,它似乎没有做出任何改变。我正在使用 ruby​​ 1.9.3
  • 您需要使用TZInfo Ruby GemRails ActiveSupport::TimeZone 类。你的问题还不够清楚。请先通读这些文档。

标签: ruby-on-rails timezone


【解决方案1】:

你必须使用 TimeWithZone:

irb(main):005:0> Time.zone = 'Pacific Time (US & Canada)'
=> "Pacific Time (US & Canada)"
irb(main):006:0> Time.zone.now
=> Mon, 11 Nov 2013 02:23:09 PST -08:00

API 参考 - http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html

【讨论】:

  • 嗨 Musannif,谢谢。它如何与我当前的代码集成,如下所示? "start_date => Time.now.utc, :end_date => (Time.now.utc + @project.funding_closed_at.to_i.days).utc "
  • 实际上,在结果上调用.in_time_zone("Pacitic Time (US & Canada)") 而不是.utc 可能更简单
猜你喜欢
  • 2011-10-26
  • 1970-01-01
  • 2011-09-23
  • 2017-11-07
  • 2013-12-15
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2013-05-24
相关资源
最近更新 更多