ruby-on-rails – 如何从Rails的现有Time.zone创建Ruby DateTime?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何从Rails的现有Time.zone创建Ruby DateTime?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用户在Ruby on Rails网站上输入日期.我将日期解析为一个DateTime对象,其中包含:
date = DateTime.new(params[:year].to_i,params[:month].to_i,params[:day].to_i,params[:hour].to_i,params[:minute].to_i)

要么

date = DateTime.parse(params[:date])

两个DateTimes都不会在我以前设置的用户的时区中:

Time.zone = "Pacific Time (US & Canada)"

如何将上述DateTimes解析为正确的时区?我知道DateTime.new方法有时间偏移的第七个参数.在给定的时间内有一个简单的方法来查找时区的偏移量吗?还是应该使用除DateTime之外的东西?

解决方法

如果您以前设置了Time.zone,可以使用Time.zone.local:
user_time = Time.zone.local(params[:year].to_i,params[:minute].to_i,0)

看看ActiveSupport::TimeWithZone文档.

猜你在找的Ruby相关文章