我有一个测试,检查今天是否发货。
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)
预期:"2014年10月14日"
获得:"2014年10月15日"
当我检查SQLite中的日期比系统日期提前一天时。
sqlite> select date('now');
2014-10-15
sqlite> .exit
u2@u2-VirtualBox:~/tools/$ date
Tue Oct 14 20:13:03 EDT 2014
我感谢你能提供的任何帮助。
谢谢!
文档中写道:
使用世界协调时间(UTC)。
要获取本地时区中的时间,请使用localtime
修饰符:
select date('now', 'localtime');
感谢@CL,我解决了这个问题。我现在选择UTC中的所有日期,以便进行比较。
let(:todays_date) {I18n.l(Time.now.utc, format: '%m/%d/%Y')}