RSpec测试失败,因为SQLite中的日期比系统日期提前一天

时间:2014-10-15 00:23:45

标签: sqlite rspec

我有一个测试,检查今天是否发货。

let(:todays_date) {I18n.l(Date.today, format: '%m/%d/%Y')}          
expect(order.shipped_date.strftime("%m/%d/%Y")).to eq(todays_date)  

此测试失败,出现以下错误:

  

失败/错误:期望(order.shipped_date.strftime("%m /%d /%Y"))。到eq(todays_date)

     

预期:" 10/14/2014"
       得到了:" 10/15/2014"

当我检查SQLite中的日期比系统日期提前一天。

sqlite> select date('now');
2014-10-15
sqlite> .exit
u2@u2-VirtualBox:~/tools/$ date
Tue Oct 14 20:13:03 EDT 2014

感谢您提供的任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

documentation说:

  

使用通用协调时间(UTC)。

要在当地时区获取时间,请使用localtime修饰符:

select date('now', 'localtime');

答案 1 :(得分:0)

感谢@CL,我解决了这个问题。我现在选择UTC中的所有日期,以便进行比较。

let(:todays_date) {I18n.l(Time.now.utc, format: '%m/%d/%Y')}
相关问题