0

我目前有

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>'

我怎样才能使这项工作?

谢谢!

4

2 回答 2

4

您的格式字符串与您实际使用的格式不匹配。 %m是零填充月份 ( 01..12),而您使用的是Jun,它要求%b. 您还需要输入斜线以使格式匹配。

这都是有据可查的。

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)>
于 2013-07-18T18:41:45.713 回答
1

与您所拥有的format不匹配date_time。特别是,您在date_time. 用这个。

format = '%d/%b/%Y:%H:%M:%S'
于 2013-07-18T18:41:20.723 回答