ruby-on-rails - 如何在 Ruby 中解析没有年份的日期

标签 ruby-on-rails ruby datetime

我正在尝试解析 ruby​​ on Rails 中的日期,以便我可以从中获取月份和日期。

 DateTime.parse("07/09") // Works
 DateTime.parse("02/07/1975") // Works
 DateTime.parse("08/26/1983") // Fails 
 DateTime.parse("04/28/1982") // Fails
 DateTime.parse("10/17/1961") // Fails

为什么会失败?还有其他几个也失败了,我看不到共同的线索。

最佳答案

因为 DateTime.parse("xx/xx/xxxx") 假设您为其提供格式 DateTime("dd/mm/yyyy"),即这种方式对美国以外的世界大多数国家都有意义。最后三个示例不起作用,因为没有第 26、28 或 17 个月。请注意,您的第二个示例有效,但它可能不会给您带来您的想法:

 DateTime.parse("02/07/1975").month # => 7

使用 strptime 而不是 parse,这样您就可以明确解析日期的格式:

DateTime.strptime("02/07/1975", "%m/%d/%Y")
DateTime.strptime("02/07/1975", "%m/%d/%Y").month # => 2

关于ruby-on-rails - 如何在 Ruby 中解析没有年份的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15628148/

相关文章:

ruby-on-rails - 如何在 rails3 中创建动态路由和助手

ruby-on-rails - 是否可以通过任何支付接口(interface)将卡存档以按需收费?

ruby-on-rails - 如何返回数组中可能存在的一组序号?

ruby - 为什么 Ruby 认为公元 100 年有 366 天?

ruby-on-rails - 如何正确执行用户设置的时间/频率的重复性任务

ruby-on-rails - Rack 和 rack.request.form_vars/rack.request.form_hash

ruby-on-rails - `include` 启用 ActiveRecord 与附加位置的关联

python - 创建新日期时如何解决 "type object ' datetime.datetime' has no attribute 'timedelta' "?

C# 查找大于 DateTime.Now 的最近时间

ruby-on-rails - Rails 3 中自定义、高效、复杂的排序