Elixir - Timex 检测英国夏令时开始和结束的时间
Elixir - Timex detecting when British Summer Time starts and ends
我发现 Timex.Timezone.convert(t, "Europe/London")
return 是一个 DateTime
这种格式的对象:#<DateTime(2019-04-24T17:00:00 Europe/London (+01:00:00))>
。我的问题是当 BST 在 10 月结束时,Timex.Timezone.convert(t, "Europe/London")
会自动调整和 return UTC 时间吗?
是的,它将 return +00:00 GMT Europe/London
而不是 +01:00 BST Europe/London
。
正如评论中所建议的那样,很容易检查这一点:假设将 {:timex, "~> 3.0"}
添加为依赖项,运行
$iex -S mix
iex(1)> t = DateTime.from_naive!(~N[2019-11-01 13:26:08.003], "Etc/UTC")
#DateTime<2019-11-01 13:26:08.003Z>
iex(2)> Timex.Timezone.convert(t, "Europe/London")
#DateTime<2019-11-01 13:26:08.003+00:00 GMT Europe/London>
iex(3)> t = DateTime.from_naive!(~N[2019-10-01 13:26:08.003], "Etc/UTC")
#DateTime<2019-10-01 13:26:08.003Z>
iex(4)> Timex.Timezone.convert(t, "Europe/London")
#DateTime<2019-10-01 14:26:08.003+01:00 BST Europe/London>
我发现 Timex.Timezone.convert(t, "Europe/London")
return 是一个 DateTime
这种格式的对象:#<DateTime(2019-04-24T17:00:00 Europe/London (+01:00:00))>
。我的问题是当 BST 在 10 月结束时,Timex.Timezone.convert(t, "Europe/London")
会自动调整和 return UTC 时间吗?
是的,它将 return +00:00 GMT Europe/London
而不是 +01:00 BST Europe/London
。
正如评论中所建议的那样,很容易检查这一点:假设将 {:timex, "~> 3.0"}
添加为依赖项,运行
$iex -S mix
iex(1)> t = DateTime.from_naive!(~N[2019-11-01 13:26:08.003], "Etc/UTC")
#DateTime<2019-11-01 13:26:08.003Z>
iex(2)> Timex.Timezone.convert(t, "Europe/London")
#DateTime<2019-11-01 13:26:08.003+00:00 GMT Europe/London>
iex(3)> t = DateTime.from_naive!(~N[2019-10-01 13:26:08.003], "Etc/UTC")
#DateTime<2019-10-01 13:26:08.003Z>
iex(4)> Timex.Timezone.convert(t, "Europe/London")
#DateTime<2019-10-01 14:26:08.003+01:00 BST Europe/London>