首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“`FunctionClauseError`”错误在“Timex.Timezone.Resolt/3”中为UTC ` `DateTime`‘调用’Timex.Timezone.get/2‘时出错

“`FunctionClauseError`”错误在“Timex.Timezone.Resolt/3”中为UTC ` `DateTime`‘调用’Timex.Timezone.get/2‘时出错
EN

Stack Overflow用户
提问于 2019-12-19 16:54:59
回答 1查看 333关注 0票数 3

我有(我怀疑的)世界协调时的约会时间。我想把它转换成我的本地时间(那个日期时间的时区名为America/New_York )。

我在试着跟踪the Timex docs

America/Chicago)>

时区=Timezone.get(“美国/芝加哥”,Timex.now) #>Timezone.convert(日期时间,时区) #为什么下面显示的第三个命令会引发错误? iex(1)> ~N[2019-12-02 16:27:18] ~N[2019-12-02 16:27:18] iex(2)> DateTime.from_naive(v(1), "Etc/UTC") {:ok, #DateTime<2019-12-02 16:27:18Z>} iex(3)> timezone = Timex.Timezone.get("America/New_York", v(2)) ** (FunctionClauseError) no function clause matching in Timex.Timezone.resolve/3 The following arguments were given to Timex.Timezone.resolve/3: # 1 "America/New_York" # 2 {:error, :invalid_date} # 3 :wall Attempted function clauses (showing 1 out of 1): def resolve(name, seconds_from_zeroyear, utc_or_wall) when is_binary(name) and is_integer(seconds_from_zeroyear) and (utc_or_wall === :wall or utc_or_wall === :utc) (timex) lib/timezone/timezone.ex:356: Timex.Timezone.resolve/3 iex(3)> timezone = Timex.Timezone.get("America/New_York") #<TimezoneInfo(America/New_York - EST (-05:00:00))> 第四个命令可以工作,但是“时区”(同名)现在并不总是任何日期时间的“相同”时区。这似乎是模棱两可的。The Wikipedia article listing the tz database time zones声明: UTC偏移量与观察夏时区的UTC偏移量不同(有关详细信息,请参阅各个时区页)。

这意味着时区是(相对的)“固定的”;任何给定时区在任何特定日期的偏移量是不同的。

但如果是这样的话,Timex.Timezone.get/2甚至接受日期-时间值作为参数,这让人困惑。为何时区的名称不仅足够,而且是全面的?用名字和日期来检索时区有什么意义?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 17:00:08

我是个白痴!

在失败的命令中:

代码语言:javascript
复制
timezone = Timex.Timezone.get("America/New_York", v(2))

v(2)的值为{:ok, #DateTime<2019-12-02 16:27:18Z>},即它是包含DateTime的元组。

我应该做的是:

代码语言:javascript
复制
iex(5)> {:ok, datetime} = v(2)
{:ok, #DateTime<2019-12-02 16:27:18Z>}
iex(6)> timezone = Timex.Timezone.get("America/New_York", datetime)
#<TimezoneInfo(America/New_York - EST (-05:00:00))>
iex(7)> Timex.Timezone.convert(datetime, timezone)
#DateTime<2019-12-02 11:27:18-05:00 EST America/New_York>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59413966

复制
相关文章

相似问题

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