【问题标题】:Using datetime from Rails in Phoenix with Ecto在凤凰城的 Rails 中使用日期时间和 Ecto
【发布时间】:2018-02-09 01:49:45
【问题描述】:

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

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

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

和 Ecto 查询在同一张表上显示:

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

注意丢失的时区。

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

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

有没有办法做到这一点?

Ecto ~ 3.0

凤凰~1.2.1

导轨 ~ 5

【问题讨论】:

    标签: ruby-on-rails postgresql datetime ecto phoenix


    【解决方案1】:

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

    【讨论】:

    • 有趣!我发现了这个配置并且已经定义了。但是,我意识到这些信息并不重要,我没有为所有输入保存正确的时区(大国哈哈)。所以,现在这不是一个问题,但我会保持这篇文章开放一段时间,以防万一有更多有趣的答案。谢谢,@moveson
    猜你喜欢
    • 2017-07-21
    • 2016-06-30
    • 2016-05-03
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2016-11-03
    • 1970-01-01
    相关资源
    最近更新 更多