2015-12-31 47 views
0

I,M使用下面的Ruby版本和Rails 红宝石:2.0.0p481 & 的Rails 4.1.1支持转换的时区从其他时区IST在Ruby中

未能进行找到DateTimeclass中的任何方法将时间转换为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。 请让我知道,如果有什么方法可以实现这一点。

+0

哪个时区的你想要的日期/时间转换为IST?你的情况是什么? –

+0

是的,我想从任何时区转换为IST。从美国东部标准时间[Fri Dec 04 2015 11:35:00 GMT-0500(东部标准时间)]发送给IST。我无法找到任何红宝石来实现这一目标。 – Bindu

+0

你从哪里得到这些EST时间?他们是你解析的文本吗? –

回答

1

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 

快乐编码...

+0

谢谢,这有帮助! – Bindu