21
我有一個字符串20120119
,它表示格式爲'YYYYMMDD'
的日期。Ruby中的解析日期字符串
我想把這個字符串解析成一個代表Date的Ruby對象,這樣我就可以做一些基本的日期計算,比如diff與今天的日期。
我正在使用版本1.8.6(要求)。
我有一個字符串20120119
,它表示格式爲'YYYYMMDD'
的日期。Ruby中的解析日期字符串
我想把這個字符串解析成一個代表Date的Ruby對象,這樣我就可以做一些基本的日期計算,比如diff與今天的日期。
我正在使用版本1.8.6(要求)。
你可以使用Ruby的標準庫提供的Date.strptime
方法:
require 'date'
string = "20120723"
date = Date.strptime(string,"%Y%m%d")
或者,如評論所說,你可以使用Date.parse
,因爲試探在這種情況下正常工作:
require 'date'
string = "20120723"
date = Date.parse(string)
如果日期無效,兩者都將升起ArgumentError
:
require 'date'
Date.strptime('2012-March', '%Y-%m')
#=> ArgumentError: invalid date
Date.parse('2012-Foo') # Note that '2012-March' would actually work here
#=> ArgumentError: invalid date
如果您還想表示小時,分鐘等,則應查看DateTime。 DateTime還提供parse
方法,其工作方式與Date
上的解析方法類似。 strptime
也是如此。
Date.parse也適用於YYYYMMDD。不需要格式字符串。 – rrhartjr 2012-07-23 17:42:21
解析異常如何? – chrisapotek 2013-07-25 22:54:02
有沒有辦法檢測一個字符串是否會拋出解析異常? – theUtherSide 2016-02-05 21:21:59