2015-05-28 156 views
0

我從DB以下列格式的日期 - 「1973年6月15日」 當我嘗試創建一個Date對象紅寶石錯誤 - 無效的日期

dob = DateTime.strptime(user.date_of_birth.to_s, "%Y-%m-%d") 

我總是

invalid date 

錯誤。輸出日期通常顯示正確的日期。如何在這種情況下正確解析日期?

+0

是什麼DATE_OF_BIRTH列的數據類型? –

+0

將'user.date_of_birth.to_s'的輸出添加到日誌並在此處提供。 –

+0

適合我工作;數據類型是什麼?什麼是'user.date_of_birth.to_s'返回? –

回答

1

假設user.date_of_birth是一個DateTime(或日期)的對象,你應該能夠公正執行以下操作:

dob = user.date_of_birth.strftime("%Y-%m-%d") 
+0

這給了我一個未定義的方法'strftime'爲零:NilClass – Deez

+0

@Deez所以...日期是'nil'。使用'try'或'andand'。 –

+0

就像@DaveNewton說的那樣,那麼你的約會是零。 'user.try(:date_of_birth)'會防止錯誤,但你需要辨別爲什麼這個方法返回'nil'。 –