Ruby 日期解析

标签 ruby date

我确定我遗漏了一些明显的东西,但是 - 我正在尝试解析像“8/5/2018”这样的日期(以 m/d/y 格式)。 Ruby 似乎完全能够使用格式字符串 %-m/%-d/%Ystrftime 创建这种格式的日期,但由于某些原因 strptime 看不懂?

[1] pry(main)> require 'date'
=> true
[2] pry(main)> format = '%-m/%-d/%Y'
=> "%-m/%-d/%Y"
[3] pry(main)> today = Date.today.strftime(format)
=> "8/5/2018"
[4] pry(main)> Date.strptime(today, format)
ArgumentError: invalid date
from (pry):4:in `strptime'

strptime 使用的格式键集是否与 strftime 不同(ruby 文档似乎表明它们是相同的)?还是我在这里遗漏了其他东西?

最佳答案

它们使用相同的格式键,但是 strptime 的文档状态:

strptime does not support specification of flags and width unlike strftime.

所以问题是那些标志(在这种情况下是连字符 (-)。有点愚蠢,你不能只使用相同的格式说明符来输入日期,以及输出它们,但它就是这样,你可以这样做:

Date.strptime(today, format.delete('-'))

关于Ruby 日期解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51698613/

相关文章:

javascript - 将日期值转换为时间戳 - 发布请求 - Ember.js

Ruby:如何使用转储方法将数据输出到csv文件?

ruby - 是否存在将多个社交网络 API 抽象为一个简单 API 的 Ruby gem?

ruby-on-rails - 如何在连接模型中按列对关联模型进行排序(:through)

ruby - 将点分布在边界内的表面上

ruby - 不同机器上 ruby​​ 的不同 'upto' 行为 (`upto' : no block given (LocalJumpError))

java - 将 DateTimeFormatter.ofLocalizedTime(FormatStyle.FULL) 与 LocalTime 实例一起使用时出现 DateTimeException

django - 将Django DateField格式化为ISO格式

mongodb - 按月分组和计数

ios - 从 NSUserdefaults 转换/格式化 DateString