获得当地时间

时间:2010-07-28 09:21:52

标签: ruby-on-rails timezone local

我把这段时间存储为字符串:

2010-07-25 04:16:25

这是我采取某些行动的GMT时间。

由于我住在耶路撒冷时区,我想在耶路撒冷时间表示,即早上07:16,而不是格林威治标准时间04:16:25,这是3小时之前。

如何使用Ruby on Rails以编程方式正确转换它?我似乎迷失在为不同位置的用户提供服务时需要考虑的众多时区功能和注意事项。

我试过了:     Time.parse(“2010-07-25 04:16:25”) 它给了我:     “Sun Jul 25 04:16:25 +0300 2010”。

我认为“+0300”与我所处的位置不同?

对此有所了解,或者甚至是一篇不假设你知道的好文章的链接都会有所帮助。

2 个答案:

答案 0 :(得分:4)

您可以在environment.rb文件中定义您的时区(如果您使用的是Rails 2.3。*)或application.rb(如果您使用的是Rails 3)。

只需查看有关时区的部分,所有内容都会在评论中说明。它会说这样的东西(这是来自Rails 3):

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'

只是取消注释最后一行,你应该没事。

答案 1 :(得分:0)

要轻松地将其配置为与系统本地区域相关,您可以在application.rb

中添加它
config.time_zone = Time.now.zone

你可以使用这样的东西来获取本地时间

Post.created_at.localtime