我正在尝试确定从使用 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 = 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
最佳答案
您对 strptime
的调用没有为您正在解析的日期字符串使用正确的格式。
正确的日期字符串是:%d %b %Y
%d
是一个月中的两位数(零填充)日%b
是缩写月份名%Y
是 4 位数的年份
请注意,这些是用空格分隔的,而不是用连字符分隔的。
总而言之,下面是如何从 tset
中解析日期:
Date.strptime(tset, '%d %b %Y')
关于ruby - 在 Ruby 中解析日期字符串时出现 ArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40686321/