rails优化一:用Time.zone.now替代Time.now

6 篇文章 0 订阅
3 篇文章 0 订阅

重构之前:

使用ruby中的Time,Date和DateTime这三个类,是不会按照你在application.rb文件中对config.time_zone配置的时区来显示时间的。

Time.zone = "Alaska"
Time.now
Date.today

如上代码,只会显示当地时间,而不会显示Alaska时间(除非你此刻已经在Alaska)。

重构之后:

你应该使用ActiveSupport提供的辅助方法Time.zone来获取各个时区的时间。

Time.zone.now
Time.zone.today

这一点在The Exhaustive Guide to Rails Time Zones也有很好的讲解,所以基于rails的最佳实践准则开发一个工具也不是一个难事。

时区的bug在生产环境和开发环境的服务处于不同时区的时候体现的尤为明显,使用Time.zone可以避免这种开发/生产不同导致的问题。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值