我有一个RubyonRails项目。假设我的数据库中有一个表items
,其中有一个名为expiry_date
的列。
考虑items
表中的这两条记录:
id: 1, expiry_date: 2020-12-25 23:29:00
(假设我将其作为ActiveRecord对象加载到实例变量@item_one
中(id: 2, expiry_date: 2020-12-25 12:29:00
(假设我将其作为ActiveRecord对象加载到实例变量@item_two
中(
为什么strftime
方法会给我这个(我希望他们两个都评估为25 December 2020
?
@item_one.expiry_date.strftime('%-d %B %Y')
评估为26 December 2020
@item_two.expiry_date.strftime('%-d %B %Y')
评估为25 December 2020
我最终想明白了。
我机器的时区是GMT+8。
我问题中的日期是直接从数据库中获取的,当我strftime
d时,它在时间部分增加了8个小时,因此将日期四舍五入。