星质.日期时间和时区



有没有办法调整Ecto ?DateTime对象的时区?我想读一本Ecto。DateTime,然后根据用户指定的时区进行调整?

另外,我想接受数据输入并将其转换回来,使用时区设置。

我一直在寻找一个库或一种技术来做到这一点,但没有发现任何明显的

Ecto不包含任何这样的函数。Elixir有几个库可以做到这一点。我只用了timex。要使用Ecto在数据库中存储Timex值,可以使用timex_ecto包。以下是将Timex.DateTime值的时区更改为America/Los_Angeles的方法:

iex(1)> original = Timex.now
#<DateTime(2016-08-17T06:24:03.015339Z Etc/UTC)>
iex(2)> timezone = Timex.Timezone.get("America/Los_Angeles", original)
#<TimezoneInfo(America/Los_Angeles - PDT (-07:00:00))>
iex(3)> converted = Timex.Timezone.convert(original, timezone)
#<DateTime(2016-08-16T23:24:03.015339-07:00 America/Los_Angeles)>
iex(4)> Timex.format!(original, "{ISO:Extended}")
"2016-08-17T06:24:03.015339+00:00"
iex(5)> Timex.format!(converted, "{ISO:Extended}")
"2016-08-16T23:24:03.015339-07:00"

相关内容

  • 没有找到相关文章

最新更新