我知道我可以使用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)