支持在Ruby中从任何其他时区将时区转换为IST

时间:2015-12-31 11:41:24

标签: ruby-on-rails ruby datetime

我使用以下版本的Ruby和Rails Ruby:2.0.0p481 & Rails:4.1.1

无法在 DateTime class中找到任何方法将时间转换为IST。

在IRB中尝试DateTime.in_time_zone,可以将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

想知道如何将其他齿区转换为IST。 如果有任何办法可以解决这个问题,请告诉我。

1 个答案:

答案 0 :(得分:2)

ActiveSupport::TimeZone提供所有时区的名称。您可以通过

列出所有时区
ActiveSupport::TimeZone.all.map(&:name)

仅适用于US时区

ActiveSupport::TimeZone.us_zones.map(&:name)

所以用可用的时区改变你的时间。喜欢这个

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

快乐的编码......