ruby DateTime从“mm / dd / yyyy”格式parsing
我正在使用ruby 1.9.3
并希望从“ mm/dd/yyyy
”dateformat
string中获取Date or Time
对象
Time.zone.parse("12/22/2011")
这是给我*** ArgumentError Exception: argument out of range
require 'Date' my_date = Date.strptime("12/22/2011", "%m/%d/%Y")
如上所述,使用strptime方法,但注意下面的区别
Date.strptime("12/22/2011", "%m/%d/%Y") => Thu, 22 Dec 2011 DateTime.strptime("12/22/2011", "%m/%d/%Y") => Thu, 22 Dec 2011 00:00:00 +0000 Time.strptime("12/22/2011", "%m/%d/%Y") => 2011-12-22 00:00:00 +0000
(+0000是时区信息,我现在在格林尼治标准时间 – 因此+0000。上周,在时钟返回之前,我在BST +0100。我的application.rb包含行config.time_zone ='伦敦“)
尝试Time.strptime("12/22/2011", "%m/%d/%Y")
是否可以使用Time.strptime("01/28/2012", "%m/%d/%Y")
来代替Time.parse? 这样你就可以更好地控制Ruby如何parsingdate。
如果没有gem(例如ruby-american_date),那么Ruby 1.9 Time.parse就像Ruby 1.8.7一样,但是只有在绝对必要的时候才使用它。
1.9.3-p0 :002 > Time.parse '01/28/2012' ArgumentError: argument out of range 1.9.3-p0 :003 > require 'american_date' 1.9.3-p0 :004 > Time.parse '01/28/2012' => 2012-01-28 00:00:00 +0000