Ruby日期解析不一致

时间:2013-08-12 12:03:29

标签: ruby-on-rails parsing date utc

我无法理解为什么Date.utc会产生这种差异:

请注意,日期不同:

1.9.3-p327 :009 > time = Date.parse("2013-07-04 15:39:45 -0700").to_time
 => 2013-07-04 00:00:00 +0300    

1.9.3-p327 :010 > time = Date.parse("2013-07-04 15:39:45 -0700").to_time.utc
 => 2013-07-03 21:00:00 UTC 

更新: 即使我在日期字符串中提供UTC,7月4日仍然是第3个。

1.9.3-p327 :017 > time = Date.parse("2013-07-04 1:00:00 UTC").to_time.utc
 => 2013-07-03 21:00:00 UTC 
1.9.3-p327 :018 > time = Date.parse("2013-07-04 21:00:00 UTC").to_time.utc
 => 2013-07-03 21:00:00 UTC 
1.9.3-p327 :019 > time = Date.parse("2013-07-04 23:00:00 UTC").to_time.utc
 => 2013-07-03 21:00:00 UTC 

我的猜测是因为Date.parse没有接受关于UTC作为参数的指示。你会如何使它工作?感谢。

1 个答案:

答案 0 :(得分:1)

可以试试DateTime.parse("2013-07-04 1:00:00 UTC").to_time.utc

我得到了

irb(main):003:0>require 'date'
irb(main):005:0> DateTime.parse("2013-07-04 1:00:00 UTC").to_time.utc
=> 2013-07-04 01:00:00 UTC

由于