Ruby on rails 输入时间+;有轨时区

Ruby on rails 输入时间+;有轨时区,ruby-on-rails,timezone,Ruby On Rails,Timezone,我想询问包含时区字段的特定时间。这可能吗 现在我用这个来检索时间: <%= f.time_select :meeting_time %> <%= f.time_zone_select :timezone %> 但是,当用户输入时间时,它将自动设置为rails服务器上的时区(在本例中为GMT)。然后,如果用户选择例如GMT-1,它将减少一个小时的时间,但我想要的是增加它,以便所有时间都以GMT显示 例如: 用户输入18:00 GMT-1,f.time_选择将其设置为18:

我想询问包含时区字段的特定时间。这可能吗

现在我用这个来检索时间:

<%= f.time_select :meeting_time %>
<%= f.time_zone_select :timezone %>
但是,当用户输入时间时,它将自动设置为rails服务器上的时区(在本例中为GMT)。然后,如果用户选择例如GMT-1,它将减少一个小时的时间,但我想要的是增加它,以便所有时间都以GMT显示

例如:

用户输入18:00 GMT-1,f.time_选择将其设置为18:00 UTC。下一步,我尝试将其转换为GMT-1,但由于它已经在UTC中,它将给我17:00GMT-1,而不是我想要的19:00GMT


注意:我不想用GMT显示所有时间,但我不认为我可以在不更改服务器时区的情况下以其他格式保存。我不确定这是否是正确的rails约定,但这是一种对我来说似乎很好的解决方法

如果在将本地时间保存到数据库之前将其更改为utc,则无论服务器时区如何,都应将其保存为正确的utc时间

设置当前请求的时区

    Time.zone = params[:meeting][:timezone]
调整到utc

    meeting_time = Time.zone.local_to_utc meeting_time

我知道这很古老,但据我所知,时间图书馆在过去5年里没有发生太大变化。这将在本线程中详细讨论。
    meeting_time = Time.zone.local_to_utc meeting_time