我有一个字符串20120119,表示格式中的日期'YYYYMMDD'.
我想将这个字符串解析为一个代表Date的Ruby对象,这样我就可以做一些基本的日期计算,比如今天的日期差异.
我使用的是1.8.6版本(要求).
rob*_*tus 68
您可以使用Date.strptimeRuby标准库中提供的方法:
require 'date'
string = "20120723"
date = Date.strptime(string,"%Y%m%d")
Run Code Online (Sandbox Code Playgroud)
或者,正如评论中所建议的那样,您可以使用Date.parse,因为在这种情况下启发式工作正常:
require 'date'
string = "20120723"
date = Date.parse(string)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
如果您还想表示小时,分钟等,则应查看DateTime.DateTime还提供了一个parse与解析方法类似的方法Date.同样的道理strptime.