当我这样做时,我的 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
如何以 format
表示两次,一次代表月份,下一次代表分钟?
%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
这是一个 strptime reference
关于ruby - DateTime.strptime 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380838/