我有一个字符串20120119
,它代表格式中的日期'YYYYMMDD'
。
我想将此字符串解析为表示 Date 的 Ruby 对象,以便我可以进行一些基本的日期计算,例如与今天日期的差异。
我使用的是 1.8.6 版(要求)。
您可以使用Date.strptime
Ruby 标准库中提供的方法:
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
方法,其工作方式与 . 上的 parse 方法类似Date
。也是如此strptime
。