我的ruby程序说我的日期是无效的,当我这样做:
format = "%D/%M/%Y %H:%M:%S:3N" date = "21/03/2011 16:39:11.642" DateTime.strptime(time,format)
我也试过这个:
format = "%D/%M/%Y %H:%M:%S:3"
我得到的是这样的:
ArgumentError: invalid date from /usr/local/lib/ruby/1.9.1/date.rb:1688:in `new_by_frags' from /usr/local/lib/ruby/1.9.1/date.rb:1713:in `strptime' from (irb):12 from /usr/local/bin/irb:12:in `<main>'
解决方法
看起来你正在得到strptime的格式指令混淆.注意%M格式为格式两次,一次代表月份和下一次代表分钟?
%D表示日期为%m /%d /%y.
%d表示当月的日子[01,31]
%M表示分钟[00,59]
%m表示月份数[01,12]
这应该工作:
format = "%d/%m/%Y %H:%M:%S" date_time = "21/03/2011 16:39:11.642" puts DateTime.strptime(date_time,format) #=> 2011-03-21T16:39:11+00:00