解析Ruby中的日期字符串时发生ArgumentError
我试图确定使用ruby安装的最后一个.rpm的天数,但是当我尝试使用Date类格式化时,我发现第5行的日期无效(ArguementError)。我也尝试过将其转换为整数的方法,但似乎没有任何效果。有什么想法吗解析Ruby中的日期字符串时发生ArgumentError,ruby,linux,Ruby,Linux,我试图确定使用ruby安装的最后一个.rpm的天数,但是当我尝试使用Date类格式化时,我发现第5行的日期无效(ArguementError)。我也尝试过将其转换为整数的方法,但似乎没有任何效果。有什么想法吗 require 'date' require 'time' tset = `rpm -qa --last | head -1 | rev | cut -d ' ' -f4-6 | rev` atime = Date.strptime(tset, '%Y-%m-%d') today = D
require 'date'
require 'time'
tset = `rpm -qa --last | head -1 | rev | cut -d ' ' -f4-6 | rev`
atime = Date.strptime(tset, '%Y-%m-%d')
today = Date.today
btime = Date.strptime(today, '%Y-%m-%d')
daterange = ("btime - atime")
puts daterange
这是我的rpm命令的输出
[root@default-centos-67 dev]# rpm -qa --last | head -1 | rev | cut -d ' ' -f4-6 | rev
18 Nov 2016
您对
strtime
的调用未使用正确的日期字符串格式进行分析
正确的日期字符串是:%d%b%Y
是一个月中的两位数(零填充)日%d
是月份的缩写名称%b
是4位数的年份%Y
tset
解析日期:
Date.strptime(tset, '%d %b %Y')
您的
rpm
命令的结果是“2016年11月18日”,并且您的日期。strtime
命令正在查找具有不同格式的日期
更改:
atime = Date.strptime(tset, '%Y-%m-%d')
到
我几乎总是求助于帮助我解析
Date
和DateTime
对象的标志。你能提供一个rpm…
调用的示例输出吗?是的,它已经添加了。值得注意的是,依靠head
,rev
等命令,而且,切穿
的外壳相当凌乱。为什么不在Ruby中完成这些呢?这将有助于揭示它应该做什么。你能举一个用Ruby做的例子吗?
atime = Date.strptime(tset, '%d %b %Y')