TypeError:无法使用DateTime ruby​​将nil转换为String

时间:2014-11-11 19:46:11

标签: ruby

我有一个将日期返回UTC格式的方法

DateTime.strptime(json_doc["assetFields"]["originalAirDate"], "%Y-%m-%d").iso8601

但如果json_doc["assetFields"]["originalAirDate"] is nil,则会返回上述错误。

我需要在ruby中使用.try()方法,以便它不会抛出异常。

我不确定如何使用Datetime实现。

请帮忙。

3 个答案:

答案 0 :(得分:1)

可能在nil适合您时设置默认日期:

default_date = "2014-01-01"
DateTime.strptime(json_doc["assetFields"]["originalAirDate"] || default_date, "%Y-%m-%d").iso8601

答案 1 :(得分:0)

你真的应该在把它扔到那里之前准备一个值:

date = json_doc["assetFields"].try(:[], "originalAirDate")

date ? Date.strptime(date, "%Y-%m-%d").iso8601 : ''

答案 2 :(得分:0)

您可以使用内联救援,以便在发生异常时获取默认值:

DateTime.strptime(json_doc["my_date_field"], "%Y-%m-%d").iso8601 rescue ''