首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >灵丹妙药将时区数据添加到初始日期时间

灵丹妙药将时区数据添加到初始日期时间
EN

Stack Overflow用户
提问于 2018-07-30 18:48:08
回答 2查看 6K关注 0票数 6

我有一个需要添加时区数据的NaiveDateTime。例如,如果我有一个类似于naive_date~N[2015-10-03 12:00:00.000000]值,并且我希望将它设置为“America/”,那么在长生不老药中,这怎么可能呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-30 19:09:37

使用Timex软件包,可以:

更新:更好的解决方案

代码语言:javascript
复制
iex> use timex

iex> naive_date = ~N[2015-10-03 12:00:00.000000]

iex> Timex.to_datetime(naive_date, "America/Los_Angeles")
#DateTime<2015-10-03 12:00:00-07:00 PDT America/Los_Angeles>

旧溶液

代码语言:javascript
复制
use timex

utc_time = DateTime.from_naive!(~N[2015-10-03 12:00:00.000000], "Etc/UTC")

tz_offset =
  Timex.timezone("America/Los_Angeles", utc_time)
  |> Timex.Timezone.total_offset()

Timex.shift(utc_time, seconds: -tz_offset)
  |> Timezone.convert("America/Los_Angeles")
票数 10
EN

Stack Overflow用户

发布于 2018-07-30 19:01:43

根据NaiveDateTime文档:

我们称它们为“天真”,因为这个日期时间表示没有时区。

这意味着NaiveDateTime 不能向对象添加时区数据。

但是,NaiveDateTime可以将转换为可以用DateTime.from_naive!/2保存时区数据的。

代码语言:javascript
复制
DateTime.from_naive!(~N[2015-10-03 12:00:00.000000], "Etc/UTC")
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51600416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档