我收集用户的时区和他们想要在该时区内交付的时间。
我的应用程序设置为使用曼谷时间。
application.rb
config.time_zone = 'Bangkok' 我想存储用户输入的相对于我的时区的时间。
例如,假设用户选择了以下内容:
time = "6:00"
timezone = "(GMT-10:00) Hawaii"我希望将此时间转换为应用程序的时间,并将其保存在数据库中。
怎么从早上6点的夏威夷时区转换成现在曼谷的时间?
发布于 2011-08-15 21:42:09
让我们使用您的示例来演示:
config.time_zone = 'Bangkok'
time = "6:00"
timezone = "Hawaii"您需要做的第一件事是将应用程序的时区设置为用户选择的时区:
Time.zone = "Hawaii"然后使用这个新时区来解析时间时间:
hawaii_time = Time.zone.parse("6:00")如果我们现在打印出hawaii_time,我们会得到类似的结果(我们有HST -10:00,这意味着它是正确的):
Mon, 15 Aug 2011 06:00:00 HST -10:00现在,您可以使用rails in_time_zone方法将其转换为应用程序的时区:
local_time = hawaii_time.in_time_zone(Rails.configuration.time_zone)如果我们打印出local_time,我们会得到类似的结果(我们有ICT +07:00,这对于曼谷是正确的):
Mon, 15 Aug 2011 23:00:00 ICT +07:00现在,我们可以将应用程序的时区重置回其原始值:
Time.zone = Rails.configuration.time_zonehttps://stackoverflow.com/questions/7063935
复制相似问题