Bin*_*ndu 0 ruby datetime ruby-on-rails
我使用以下版本的 Ruby 和 Rails Ruby:2.0.0p481和 Rails:4.1.1
在DateTime 中 找不到任何class将时间转换为 IST 的方法。
DateTime.in_time_zone在 IRB 中尝试,可以将 IST 转换为 EST,但反之则不行。
2.0.0-p481 :003 > date = "Thu Jan 07 2016 16:20:00 GMT+0530 (India Standard Time)"
2.0.0-p481 :003 > date = date.in_time_zone('Eastern Time (US & Canada)')
2.0.0-p481 :003 > date
=> Thu, 07 Jan 2016 05:50:00 EST -05:00
Run Code Online (Sandbox Code Playgroud)
想知道如何将其他齿区转换为 IST。请让我知道是否有任何方法可以实现这一目标。
ActiveSupport::TimeZone提供所有时区的名称。您可以通过执行列出所有时区
ActiveSupport::TimeZone.all.map(&:name)
Run Code Online (Sandbox Code Playgroud)
仅针对US时区
ActiveSupport::TimeZone.us_zones.map(&:name)
Run Code Online (Sandbox Code Playgroud)
因此,请使用可用时区更改您的时间。像这样
irb> date = DateTime.now
=> Thu, 31 Dec 2015 22:15:59 +0530
# convert to EST
irb> date_est = date.in_time_zone("Eastern Time (US & Canada)")
=> Thu, 31 Dec 2015 11:45:59 EST -05:00
# convert to IST
irb> date_ist = date_est.in_time_zone("Chennai")
=> Thu, 31 Dec 2015 22:15:59 IST +05:30
Run Code Online (Sandbox Code Playgroud)
快乐编码...