在 Ecto 中使用 Phoenix Rails 中的日期时间

Using datetime from Rails in Phoenix with Ecto

我在 Rails 应用程序中创建了一个数据库,现在我想在 Phoenix 应用程序中使用同一个数据库(使用 Ecto)。目前的主要问题是日期时间值。

Rails 应用程序向我显示如下内容:

Tue, 06 Feb 2018 00:13:36 -02 -02:00

与 Ecto 查询相同 table 显示:

[{{2018, 2, 6}, {2, 13, 36, 22082}}]

注意丢失的时区。

该数据库在 phoenix 应用程序上是无模式的,这是必需的。

所以,我想保留时区信息并将数据转换为更有用的计算格式。

有办法吗?

Ecto ~ 3.0

凤凰 ~ 1.2.1

Rails~5

Rails 不在数据库中存储时区数据。所有日期时间值都以 UTC 格式存储。当您查询 ActiveRecord 对象上的日期时间字段时,它会将输出转换为使用 config.time_zone = 在 application.rb 文件中设置的时区。