首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Rails现有的Time.zone创建一个Rails?

如何从Rails现有的Time.zone创建一个Rails?
EN

Stack Overflow用户
提问于 2013-04-06 17:13:45
回答 4查看 54.6K关注 0票数 29

我让用户在Ruby on Rails网站上输入日期。我将日期解析为一个DateTime对象,如下所示:

代码语言:javascript
复制
date = DateTime.new(params[:year].to_i, params[:month].to_i, params[:day].to_i, params[:hour].to_i, params[:minute].to_i)

代码语言:javascript
复制
date = DateTime.parse(params[:date])

两个DateTime都不会处于我之前设置的用户所在的时区,如下所示:

代码语言:javascript
复制
Time.zone = "Pacific Time (US & Canada)"

如何解析上述DateTime%s以使其处于正确的时区?我知道DateTime.new方法的时间偏移量有第7个参数。有没有一种简单的方法来查找给定时间内某个时区的偏移量?或者我应该使用DateTime之外的其他东西

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-06 17:29:06

如果您之前设置了Time.zone,则可以使用Time.zone.local

代码语言:javascript
复制
user_time = Time.zone.local(params[:year].to_i, params[:month].to_i, params[:day].to_i, params[:hour].to_i, params[:minute].to_i, 0)

请看一下ActiveSupport::TimeWithZone文档。

票数 22
EN

Stack Overflow用户

发布于 2013-11-08 17:57:55

尝试:

代码语言:javascript
复制
Time.zone = "Pacific Time (US & Canada)"
Time.zone.parse('8-11-2013 23:59:59') #=> Fri, 08 Nov 2013 23:59:59 PST -08:00 

代码语言:javascript
复制
Time.now.in_time_zone("Pacific Time (US & Canada)")

代码语言:javascript
复制
DateTime.now.in_time_zone("Pacific Time (US & Canada)")
票数 37
EN

Stack Overflow用户

发布于 2018-03-29 23:04:32

从Ruby1.9.1开始,DateTime.new接受可选的偏移量参数(作为第七个

我们可以写

代码语言:javascript
复制
DateTime.new(2018, 1, 1, 0, 0, 0, Time.zone.formatted_offset)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15849050

复制
相关文章

相似问题

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