首页 > 解决方案 > 如何在 Rails 中正确处理 AM/PM 时间?

问题描述

我有一个将开始时间和结束时间保存到数据库的 API。时间以 UTC 保存。

例如,如果我start_time是美国东部标准时间上午 9:00,它将在我的数据库中保存为 14:00:00。同样,当我end_time是美国东部标准时间晚上 10:00 时,它将在我的数据库中保存为 03:00:00。

这两个都是 Postgres 中的时间字段。

当我在单独的 API 中检索这些时间时,start_time解析得很好,但end_time解析得好像是下午 3 点。做end_time.hour给我 15。我希望这是凌晨 3 点,所以当我将其转换回东部标准时间时,我可以得到晚上 10:00。

我怎样才能做到这一点?

编辑:

  1. 我正在使用timePostgres 中的类型。
  2. 我服务器上的时区是 UTC。
  3. API 是一个单独的控制器上的端点,它将这些值传递给我的客户端。
  4. 服务器(也为 API 提供服务)在本地America/Toronto时区和America/New York生产时区(相同的时区)中运行。

标签: ruby-on-railsrubypostgresqltime

解决方案


推荐阅读