【问题标题】:Ruby date parse inconsistencyRuby 日期解析不一致
【发布时间】:2013-08-13 17:39:28
【问题描述】:

我不明白为什么 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 的指示作为参数。你会如何让它发挥作用?谢谢。

【问题讨论】:

  • 你可以试试DateTime.parse("2013-07-04 1:00:00 UTC").to_time
  • DateTime.parse("2013-07-04 1:00:00 UTC").to_time => 2013-07-04 04:00:00 +0300
  • 请看我的cmetsDateTime.parse("2013-07-04 1:00:00 UTC").to_time.utc
  • 就是答案,请补充:) Date 是解析日期,DateTime 也包括时间。这说明了。谢谢。
  • 请接受我的帖子谢谢

标签: ruby-on-rails parsing date utc


【解决方案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

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    相关资源
    最近更新 更多