Ruby on rails 如果没有一个月或一天,我如何在Rails中解析一个日期?

Ruby on rails 如果没有一个月或一天,我如何在Rails中解析一个日期?,ruby-on-rails,datetime,internationalization,Ruby On Rails,Datetime,Internationalization,我需要从一个JSON字符串解析Rails中的一个日期,该字符串可能不包含月份或日期,并以ISO8601格式返回。如果没有提供一天,那么我需要返回一年中的第一个月,如果没有提供一个月,则返回一年中的第一个月 只需运行DateTime.parse(response['date'])。utc.iso8601在缺少月份或日期时抛出ArgumentError,例如DateTime.parse('2001') DateTime使用带有可选整数参数的DateTime.new完美地处理我的精确条件,但在解析字符

我需要从一个JSON字符串解析Rails中的一个日期,该字符串可能不包含月份或日期,并以ISO8601格式返回。如果没有提供一天,那么我需要返回一年中的第一个月,如果没有提供一个月,则返回一年中的第一个月

只需运行
DateTime.parse(response['date'])。utc.iso8601
在缺少月份或日期时抛出
ArgumentError
,例如
DateTime.parse('2001')

DateTime使用带有可选整数参数的
DateTime.new
完美地处理我的精确条件,但在解析字符串时如何才能最好地处理这个问题


在执行此操作时,我必须记住i18n,因此,虽然我可以为每个语言环境存储三个不同格式的字符串参数,用于
strtime
,但这似乎有点老套。如果这确实是处理此问题的最佳方法,我希望得到一个解释。

为了清楚起见,字符串“2001”应该转换为表示2001年1月1日的日期对象?有月但没有日的日期示例是什么样的?
2001-05
应转换为2001年5月1日。为了清楚起见,字符串“2001”应转换为表示2001年1月1日的日期对象?有月但没有日的日期示例是什么样的?
2001-05
应转换为2001年5月1日