ruby - 在 Ruby 中解析日期字符串时出现 ArgumentError

标签 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 = 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/

相关文章:

ruby - 无法使用 CONSTANT 优化字符串

linux - 如何确定 linux 进程记帐 (accton) 当前是否正在运行?

c - 将 xlib XImage 保存为 PNG

linux - 如何将命令的连续输出重定向到用 C 编写的程序的输入

sql - ActiveRecord 的意外行为包括

regex - 在 Ruby 中使用正则表达式提取信息?

ruby - 低开销的 Ruby 分析?

python - 如何将 os 变量导入 PYTHON 并更新它?

linux - 虚拟USB-over-WiFi-可能吗?

ruby - rake db :schema:load loads schema. rb 多次?