将缺少Day的日期字符串转换为date



我知道我可以使用to_date或解析将字符串转换为rails中的日期,但是如果字符串的格式为"01-2018",其中01是月份(1月)并且缺少日期,我如何转换为日期?一定很简单,但我做起来有困难。

尝试返回意想不到的结果,我猜是因为缺少日期:

3.0.2 :004 > Date.parse(x)  => Sun, 01 Jan 2023
3.0.2 :005 > x  => "01-2018"
3.0.2 :006 > x.to_date  => Sun, 01 Jan 2023

我想我可以用"01-"前缀字符串,但有更好的方法吗?

可以使用Date.strptime。这个方法接收日期的字符串和格式:

date_str = "01-2023"
date = Date.strptime(date_str, "%m-%Y")
puts date # 2023-01-01
Date.strptime("12-2011", "%m-%Y")

也许加上错过的一天?

Date.parse("01-" + x)

相关内容

  • 没有找到相关文章

最新更新