Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails时区选择下拉列表显示GMT而不是UTC_Ruby On Rails_Ruby On Rails 3_Timezone - Fatal编程技术网

Ruby on rails Rails时区选择下拉列表显示GMT而不是UTC

Ruby on rails Rails时区选择下拉列表显示GMT而不是UTC,ruby-on-rails,ruby-on-rails-3,timezone,Ruby On Rails,Ruby On Rails 3,Timezone,我创建了一个带有time:time和time\u zone:string的模型。具体而言,我使用以下方法创建: rails generate scaffold Alarm time:time time_zone:string 我创建了一个表单,如下所示: <%= form_for(@alarm) do |f| %> <div class="field"> <%= f.label :time %><br /> <%= f.

我创建了一个带有time:time和time\u zone:string的模型。具体而言,我使用以下方法创建:

rails generate scaffold Alarm time:time time_zone:string
我创建了一个表单,如下所示:

<%= form_for(@alarm) do |f| %>
  <div class="field">
    <%= f.label :time %><br />
    <%= f.time_select :time %>
  </div>
  <div class="field">
    <%= f.label :time_zone %><br />
    <%= f.time_zone_select :time_zone,
        ActiveSupport::TimeZone.us_zones,
        default: "Pacific Time (US & Canada)" %>
  </div>
<% end %>



当我看到表单时,time_zone_select会显示一个下拉列表,其中包含以GMT而非UTC表示的一系列时区(例如“(GMT-08:00)太平洋时间”)

我认为默认情况下,时区以UTC显示。我如何以UTC(例如(UTC-08:00)太平洋时间)显示

这是一个新的项目,我没有接触任何配置文件

我使用的是ruby-1.9.3-p0、rails 3.2.6和pg 0.13.2


提前谢谢

时间存储在UTC中,但显示在本地时区中

要在视图中将时间还原回UTC,请使用以下方法:

local_to_utc(time, dst=true)

或者在
应用程序中全局更改它。rb

config.active_record.default_timezone = "UTC" 

这决定了从数据库中提取日期和时间时是使用Time.local(如果设置为:local)还是使用Time.utc(如果设置为:utc)。Rails的默认值为:utc,但活动记录在Rails之外使用时默认为:local。

时间存储在utc中,但显示在本地时区中

要在视图中将时间还原回UTC,请使用以下方法:

local_to_utc(time, dst=true)

或者在
应用程序中全局更改它。rb

config.active_record.default_timezone = "UTC" 

这决定了从数据库中提取日期和时间时是使用Time.local(如果设置为:local)还是使用Time.utc(如果设置为:utc)。默认值为:utc for Rails,尽管Active Record在Rails之外使用时默认为:local。

谢谢您的回答,但我不确定您是否正确理解了我的问题。我不是说时间不以UTC显示,而是说组合框中的时区不以UTC显示。例如,如果转到,图片中的组合框将显示:(UTC-10:00)夏威夷(UTC-09:00)阿拉斯加。。。但在我的组合框中,它显示:(GMT-10:00)夏威夷(GMT-09:00)阿拉斯加。。。希望这澄清了问题。谢谢隐马尔可夫模型。。我能提供的最好信息是:
config.active\u record.default\u timezone=“UTC”
,这也不起作用。谢谢你!我会继续找的,这方面有什么进展吗?我也有同样的问题谢谢你的回答,但我不确定你是否正确理解了我的问题。我不是说时间不以UTC显示,而是说组合框中的时区不以UTC显示。例如,如果转到,图片中的组合框将显示:(UTC-10:00)夏威夷(UTC-09:00)阿拉斯加。。。但在我的组合框中,它显示:(GMT-10:00)夏威夷(GMT-09:00)阿拉斯加。。。希望这澄清了问题。谢谢隐马尔可夫模型。。我能提供的最好信息是:
config.active\u record.default\u timezone=“UTC”
,这也不起作用。谢谢你!我会继续找的,这方面有什么进展吗?我也有同样的问题