我正在尝试解析 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/