我有这样一根绳子:

"2010-01-01 12:30:00"

我需要从当前本地时区转换为UTC.

我试过这个,但它似乎认为字符串已经是UTC.

"2010-01-01 12:30:00".to_datetime.in_time_zone("Central Time (US & Canada)")
=> Fri, 01 Jan 2010 06:30:00 CST -06:00

我不知道接下来该怎么办.

从我的 comments 中添加了以下内容:

>> Time.zone = "Pacific Time (US & Canada)"
=> "Pacific Time (US & Canada)"
>> Time.parse("2010-10-27 00:00:00").getutc
=> Wed Oct 27 06:00:00 UTC 2010
>> Time.zone = "Mountain Time (US & Canada)"
=> "Mountain Time (US & Canada)"
>> Time.parse("2010-10-27 00:00:00").getutc
=> Wed Oct 27 06:00:00 UTC 2010

谢谢你的帮助.

推荐答案

Time.parse("2010-01-01 12:30:00").getutc

EDIT

(一边磨牙一边想着Ruby/Rails日期/时间处理的噩梦)

好吧,这个怎么样:

Time.zone.parse("2010-01-01 12:30:00").utc

请注意,Time.zone.parse返回DateTime,而添加.utc则返回Time.这是有区别的,所以要小心.

还有时间.zone是Rails(ActiveSupport)的一部分,而不是Ruby.只是想让你知道.

Ruby-on-rails相关问答推荐

将会话_store 与:active_record一起使用

Heroku、Selenium、Chome和Chromedriver的复杂问题(抱歉,无法简单描述,请阅读详细信息)

根据表单内的 Select 字段值渲染部分内容

Rails 6:强类型原始 SQL 查询返回数组类型

Gem::Ext::BuildError:ERROR:无法在macOS Monterey上构建Gem本机扩展

显示每个 rspec 示例的运行时

Rails 3 - Select 包含?

你能从 Heroku dynos/workers 中获得多少性能?

SQLite3::BusyException

如何避免 has_many :through 关系中的重复?

从 before_action 中排除控制器

Ruby on Rails:有条件地显示部分

在 ruby​​ on rails 上构建方法

在 Controller 中调用模型方法

如何测试自定义验证器?

确认后如何进行设计重定向

如何在 Rails 3 中将多个属性传递给 find_or_create_by?

如何使用 Rails 3 获取请求的目标控制器和操作?

您如何查看 ruby​​ 中的调用堆栈示例?

在 Rails 中显示主机名和数据库名