2013-07-18 64 views
0

我現在有無法獲得紅寶石strptime工作

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

您的格式字符串與您實際使用的格式不匹配。 %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)> 
+2

* + 1 *用於發佈良好描述的答案。 –

+0

謝謝,對不起愚蠢的問題:/ – BWStearns

+0

@BSpiros不客氣!我不認爲這是一個愚蠢的問題;沒有人出生的格式化日期,學習需要時間並走過困境。我會*說*這將是明智的第一步,首先檢查文件,看看你是否可以把它整理出來。這並不總是有幫助,但它多次。 –

1

formatdate_time中的內容不符。特別是,您在date_time中有斜槓和縮寫月份名稱。用這個。

format = '%d/%b/%Y:%H:%M:%S'