gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:47:38 27 4
gpt4 key购买 nike

我正在尝试确定从使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com