Ruby on rails Rails DateTime-to-Time dst检查
这也失败了Ruby on rails Rails DateTime-to-Time dst检查,ruby-on-rails,datetime,time,dst,Ruby On Rails,Datetime,Time,Dst,这也失败了 Time.now 2017-03-14 12:07:59 -0600 Time.now.dst? true tt = Time.parse(DateTime.strptime("03/14/2017 12:07AM", "%m/%d/%Y %I:%M%p").to_datetime.to_s) 2017-03-14 00:07:00 +0000 tt.class Time tt.dst? false 为什么DateTime到Time的转换无法通过dst?我认为这是因为转换的时间缺
Time.now
2017-03-14 12:07:59 -0600
Time.now.dst?
true
tt = Time.parse(DateTime.strptime("03/14/2017 12:07AM", "%m/%d/%Y %I:%M%p").to_datetime.to_s)
2017-03-14 00:07:00 +0000
tt.class
Time
tt.dst?
false
为什么DateTime到Time的转换无法通过dst?我认为这是因为转换的时间缺少时区(例如-0600)。试试下面的方法
DateTime.strptime(value, "%m/%d/%Y %I:%M%p").to_datetime.strftime("%Y-%m-%d %H:%M:%S").to_datetime.change(offset: '-0500').to_time.dst?
tt = Time.parse(DateTime.strptime("03/14/2017 12:07AM -06:00", "%m/%d/%Y %I:%M%p %z").to_datetime.to_s)