我想將字符串轉換爲不同格式的「13:54 25/02/2016」的日期時間對象,有沒有辦法做到這一點?Ruby日期時間解析錯誤不同的格式
我試過不同的方法,但得到錯誤。我使用的紅寶石版本「2.1.2」
例子:
DateTime.parse("13:54 25/02/2016") # ArgumentError: invalid date
DateTime.strptime("13:54 25/02/2016") ArgumentError: invalid date
我想將字符串轉換爲不同格式的「13:54 25/02/2016」的日期時間對象,有沒有辦法做到這一點?Ruby日期時間解析錯誤不同的格式
我試過不同的方法,但得到錯誤。我使用的紅寶石版本「2.1.2」
例子:
DateTime.parse("13:54 25/02/2016") # ArgumentError: invalid date
DateTime.strptime("13:54 25/02/2016") ArgumentError: invalid date
DateTime.parse("13:54 25/02/2016")
將返回 Thu, 25 Feb 2016 13:54:00 +0000
在我的軌道console.Not知道爲什麼你有一個參數錯誤。
如果你想使用strptime,你需要做的DateTime.strptime("13:54 25/02/2016", '%H:%M %d/%m/%Y')
#=> Thu, 25 Feb 2016 13:54:00 +0000
我想你可能需要指定的格式,但它應該是默認的工作(我試圖與2.2.2)爲好。例如:
2.2.2 :016 > DateTime.parse("13:54 25/02/2016", "%H:%M %d/%m/%Y")
=> #<DateTime: 2016-02-25T13:54:00+00:00 ((2457444j,50040s,0n),+0s,2299161j)>
您確定您使用的是正確的日期:require date
?也許DateTime
類是打開並更改的?
DateTime.parse(「13:54 25/02/2016」,「%H:%M%d /%m /%Y」)#ArgumentError:無效日期 對於strptime日期格式是強制性的,解析也是強制性的? – Madhusudhan
您可以檢查'Kernel.const_defined?(「DateTime」)'是否在'require date''之前返回'false'?我不知何故感覺你正在使用'DateTime'的意外版本。 –
它返回true – Madhusudhan
strptime
需要你提供的日期字符串格式:
strptime([string='-4712-01-01T00:00:00+00:00'[, format='%FT%T%z'[ ,start=ITALY]]])
即使你知道你提供的默認格式字符串,它是一個很好的做法,以明確它。
DateTime.parse(「13:54 25/02/2016」)#ArgumentError:無效的日期仍然有錯誤。 DateTime.strptime(「13:54 25/02/2016」,'%H:%M%d /%m /%Y')這是給予正確的日期時間對象。 – Madhusudhan
@Madhusudhan嘗試更新您的rails版本,我使用的是2.2.3,它工作正常。很高興我的答案幫助:) – Jefferson