[英]What's a good way to deal with timezone-independent time in Rails
我正在构建一个任务计划应用程序,就其时区依赖性而言,我需要两种类型的事件。
所谓与时区无关的时间,是指无论您身在何处,时间都是相同的。 我想将时间设置为8:00 AM,无论我身在何处,我都希望将其视为8:00 AM。 我想将这些用于日常任务,例如当我醒来时。 因为想要在纽约的凌晨8:00醒来,并不意味着想要在洛杉矶的凌晨5:00醒来。 与时区无关
以时区为准,我的意思是说,纽约8:00 AM的会议将是洛杉矶5:00 AM的会议。 其含义取决于时区。
rails中的任何类型的日期和时间信息始终带有时区后缀。 用Rails表示与时区无关的时间的好方法是什么?
与时区无关的传统存储时间的方法是将其存储在UTC中,也称为协调世界时或格林威治标准时间。 在Ruby中,您可以通过在某个时间调用utc
方法来转换为此,例如
irb(main):001:0> Time.now.utc
=> 2015-11-08 23:54:21 UTC
UTC时间的时区偏移为零。
由于许多计划方案绝对需要一种表示日期的方法,而没有日期或时区,因此DateTime
和Time
类都不足够。
考虑改用Tod
(一天中的时间)gem :
gem install tod
...
require 'tod'
Tod::TimeOfDay.parse "15:30" # => 15:30:00
文档中的其他示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.