我目前有
format = '%d%m%Y:%H:%M:%S'
date_time = '30/Jun/2013:07:38:27'
puts DateTime.strptime(date_time, format)
返回
ArgumentError: invalid date
from (irb):95:in 'strptime'
from (irb):97
from (irb):usr/bin/irb:12:in '<main>'
我该如何做到这一点?
谢谢!
答案 0 :(得分:4)
您的格式字符串与您实际使用的格式不符。 %m
是零填充月份(01..12
),而您正在使用Jun
,这需要%b
。您还需要添加斜杠以使格式匹配。
全是documented。
require 'date'
format = '%d/%b/%Y:%H:%M:%S'
date_time = '30/Jun/2013:07:38:27'
DateTime.strptime(date_time, format)
# => #<DateTime: 2013-06-30T07:38:27+00:00 ((2456474j,27507s,0n),+0s,2299161j)>
答案 1 :(得分:1)
format
与date_time
中的内容不匹配。特别是,您在date_time
中有斜杠和缩写的月份名称。使用它。
format = '%d/%b/%Y:%H:%M:%S'