我正在构建一个任务调度应用程序,我需要两种与时区相关的事件。
与时区无关的时间,无论您的位置如何,我的意思是相同的时间。我想把时间设定为上午8点,无论我在哪里,我都想把它看作是上午8点。我希望将这些用于日常工作,例如我醒来时。因为想要在纽约上午8点醒来,并不意味着想要在洛杉矶上午5点起床。它与时区无关
根据时区相关的时间,我的意思是纽约上午8点的会议将在洛杉矶上午5点举行。它的含义取决于时区。
rails中的任何日期和时间信息始终后跟时区后缀。什么是在轨道中表示与时区无关的时间的好方法?
答案 0 :(得分:1)
独立于时区存储时间的传统方法是将其存储在UTC中,也称为协调世界时或格林威治标准时间。在Ruby中,您可以通过一次调用utc
方法转换为此,例如
irb(main):001:0> Time.now.utc
=> 2015-11-08 23:54:21 UTC
UTC时间的时区偏移量为零。
答案 1 :(得分:1)
由于许多计划方案绝对需要一种方法来表示没有日期或时区的时间,因此DateTime
和Time
类都不足。
请考虑使用Tod
(time-of-day) gem:
gem install tod
...
require 'tod'
Tod::TimeOfDay.parse "15:30" # => 15:30:00
其他示例in the documentation。