在rails 4中更改日期格式

时间:2014-11-14 13:43:07

标签: ruby-on-rails datetime date-formatting

我的text_field中有日期格式,如下所示 - > 2014-11-14 20:45:00

我想在rails 4中输入我的数据库。如何在数据库列类型" datetime"?中轻松保存它。

我已尝试过以下方式,但似乎无法正常工作。

params[:task_assign][:task_assign_scheduled_on]=DateTime.civil(
params[:task_assign][:"task_assign_scheduled_on(1i)"].to_i,
params[:task_assign][:"task_assign_scheduled_on(2i)"].to_i,
params[:task_assign][:"task_assign_scheduled_on(3i)"].to_i,
params[:task_assign][:"task_assign_scheduled_on(4i)"].to_i,
params[:task_assign][:"task_assign_scheduled_on(5i)"].to_i)

2 个答案:

答案 0 :(得分:1)

在posgres数据库中,实际上您的格式将被保存而无需进一步投射,但您可以尝试使用to_datetime如果有帮助

"2014-11-14 20:45:00".to_datetime

--> Fri, 14 Nov 2014 20:45:00 +0000

但这也不是将保存到您的数据库的格式,因此我告诉您直接保存您的格式没有错。

如果您尝试从数据库中获取日期时间列,它将如下所示:

Fri, 14 Nov 2014 14:44:03 UTC +00:00

我不知道这个数据库与另一个数据库的区别是否有所不同,或者有一些与activerecord有关的东西会自动处理它。

答案 1 :(得分:1)

ActiveRecord在保留记录时自动转换有效的DateTime字符串。保存到数据库的格式取决于您使用的数据库及其设置。通常,PG会将任何DateTime保存为UTC DateTime字符串。

如果要以特定格式保存DateTime,则需要更新数据库设置,或者只是将属性保存为字符串。