Rails无法将正确的日期保存到数据库中

时间:2016-01-02 14:09:56

标签: ruby-on-rails ruby date

我有一个像这样的“18/12/15”日期格式作为输入(它是一个字符串)

18 => day
12 => month 
15 => year (2015)

我正在尝试将它存储在我的数据库中的日期列中,但它并没有保存正确的日期(对于前一个例子,我得到的是星期六,2018年12月15日,而我应该得到像2015年12月18日这样的日子。)

我该如何解决?

2 个答案:

答案 0 :(得分:3)

您可以使用strptime

require 'date'
Date.strptime('18/12/15', '%d/%m/%y')
#<Date: 2015-12-18 ((2457375j,0s,0n),+0s,2299161j)>

答案 1 :(得分:0)

您希望定义日期,月份,年份的日期,而由于区域设置,您的意图被解释为年,月,日。

您可以执行以下操作之一:

  • 以反转顺序传递参数
  • 实现一个方法,该方法以正确的顺序获取参数并将它们反转
  • 将区域设置设置为您要使用的区域设置
  • 使用strptime,正如spickermann所描述的