在Rails 3中,我无法将UTC TimeTimeWithZone转换为本地时间.

假设moment是UTC中的Time变量(例如moment = Time.now.utc).我如何将moment转换为我的时区,同时考虑DST(即使用EST/EDT)?

更准确地说,我想打印"3月14日,星期一上午9点",如果时间与美国东部时间今天上午9点一致,以及"3月7日,星期一上午9点",如果时间是上周一美国东部时间上午9点.

希望还有别的办法?

Edit:I first thought"EDT"应该是一个公认的时区,但"EDT"不是一个实际的时区,更像是一个时区的状态.例如,要求Time.utc(2011,1,1).in_time_zone("EDT")就没有任何意义.这有点令人困惑,因为"EST"is是一个实际的时区,在一些不使用夏令时且(UTC-5)年长的地方使用.

推荐答案

Rails有自己的名字.看看他们:

rake time:zones:us

您还可以在所有时区运行rake time:zones:all.

因此,要转换为EST,自动适应DST:

Time.now.in_time_zone("Eastern Time (US & Canada)")

Ruby-on-rails相关问答推荐

mini_racer gem 0.8.0无法与Ruby 3.1.xBundle 安装

在Ruby中按特定值合并时,将两个对象数组添加到一起

轨道强参数,怎么允许空参数?

Rails ActiveRecord::LogSubscriber 不输出详细查询日志(log)

nginx 中的 Rails 7 Active Storage - 图像中途停止加载 net::ERR_HTTP2_PROTOCOL_ERROR 200

如何在 Rails 中声明动态路由范围/命名空间变量?

在 Rails 7 中,可以将导入映射与 js Bundle 解决方案一起使用,还是它们是专有的?

Rails 将 form_for 对象传递给部分

如何让 Rspec 运行嵌套在文件夹下的所有测试?

Ruby on Rails 的 varchar 迁移问题

在公共 Rails 应用程序中将敏感数据存储在哪里?

在 Rails/ActiveRecord 列名中使用问号字符

Rails - 如何在 f.submit 上放置确认弹出窗口?

如何编写 Capybara 断言来判断按钮的存在及其启用或禁用状态?

Rails 5:重命名表迁移

使用 PostgreSQL 的模式和 Rails 创建多租户应用程序

从任何编码强制字符串为 UTF-8

Rails 3.1 中的 Rails.cache 错误 - TypeError: can't dump hash with default proc

如何在 Rails 应用程序中测试 ElasticSearch (Rspec)

Ruby on Rails:如何在 select_tag 中使用默认占位符?