首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仍然对时区和转换感到困惑

仍然对时区和转换感到困惑
EN

Stack Overflow用户
提问于 2011-08-15 18:30:24
回答 1查看 194关注 0票数 0

我收集用户的时区和他们想要在该时区内交付的时间。

我的应用程序设置为使用曼谷时间。

application.rb

代码语言:javascript
复制
 config.time_zone = 'Bangkok'  

我想存储用户输入的相对于我的时区的时间。

例如,假设用户选择了以下内容:

代码语言:javascript
复制
time = "6:00"
timezone = "(GMT-10:00) Hawaii"

我希望将此时间转换为应用程序的时间,并将其保存在数据库中。

怎么从早上6点的夏威夷时区转换成现在曼谷的时间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-15 21:42:09

让我们使用您的示例来演示:

代码语言:javascript
复制
config.time_zone = 'Bangkok'
time = "6:00"
timezone = "Hawaii"

您需要做的第一件事是将应用程序的时区设置为用户选择的时区:

代码语言:javascript
复制
Time.zone = "Hawaii"

然后使用这个新时区来解析时间时间:

代码语言:javascript
复制
hawaii_time = Time.zone.parse("6:00")

如果我们现在打印出hawaii_time,我们会得到类似的结果(我们有HST -10:00,这意味着它是正确的):

代码语言:javascript
复制
Mon, 15 Aug 2011 06:00:00 HST -10:00

现在,您可以使用rails in_time_zone方法将其转换为应用程序的时区:

代码语言:javascript
复制
local_time = hawaii_time.in_time_zone(Rails.configuration.time_zone)

如果我们打印出local_time,我们会得到类似的结果(我们有ICT +07:00,这对于曼谷是正确的):

代码语言:javascript
复制
Mon, 15 Aug 2011 23:00:00 ICT +07:00

现在,我们可以将应用程序的时区重置回其原始值:

代码语言:javascript
复制
Time.zone = Rails.configuration.time_zone
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7063935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档