You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Call Timex.Timezone.local/0 when the system time is within 1 hour after DST starts (the missing hour of local time). For example, at ~U[2024-03-31 01:13:41.097331Z] when TZ=Europe/London.
Description of issue
I would expect Timex.Timezone.local/0 to return the DST timezone like it does in the hour that follows the failing case.
Instead, it returns a :could_not_resolve_timezone error.
Timex.Timezone.local/0 calls Timex.Timezone.local/1 with the current UTC. The documentation for Timex.Timezone.local/1 doesn't say if the argument is in UTC or local time.
Here is an example session with timex 3.7.11 and TZ=Europe/London. (2) and (3) show it working before DST starts. (4), (5) and (6) show it failing during the changeover. (7) and (8) show it working again after the changeover.
iex(1)> Application.ensure_all_started(:timex)
{:ok,
[:crypto, :asn1, :public_key, :ssl, :unicode_util_compat, :idna, :mimerl,
:certifi, :syntax_tools, :parse_trans, :ssl_verify_fun, :metrics, :hackney,
:tzdata, :combine, :expo, :gettext, :timex]}
iex(2)> Timex.Timezone.local
#<TimezoneInfo(Europe/London - GMT (+00:00:00))>
iex(3)> Timex.now
~U[2024-03-31 00:58:30.182979Z]
iex(4)> Timex.now
~U[2024-03-31 01:13:41.097331Z]
iex(5)> Timex.Timezone.local
{:error, {:could_not_resolve_timezone, "Europe/London", 63879066824, :wall}}
iex(6)> Timex.now
~U[2024-03-31 01:13:54.824859Z]
iex(7)> Timex.now
~U[2024-03-31 02:01:56.322685Z]
iex(8)> Timex.Timezone.local
#<TimezoneInfo(Europe/London - BST (+01:00:00))>
iex(9)> Application.started_applications
[
{:timex,
~c"Timex is a rich, comprehensive Date/Time library for Elixir projects, with full timezone support via the :tzdata package.\nIf you need to manipulate dates, times, datetimes, timestamps, etc., then Timex is for you!\n",
~c"3.7.11"},
{:gettext, ~c"Internationalization and localization through gettext",
~c"0.23.1"},
{:expo,
~c"Low-level Gettext file handling (.po/.pot/.mo file writer and parser).",
~c"0.4.1"},
{:combine, ~c"A parser combinator library for Elixir projects.", ~c"0.10.0"},
{:tzdata, ~c"Tzdata is a parser and library for the tz database.\n",
~c"1.1.1"},
{:hackney, ~c"simple HTTP client", ~c"1.20.1"},
{:metrics, ~c"A generic interface to different metrics systems in Erlang.",
~c"1.0.1"},
{:ssl_verify_fun, ~c"SSL verification library", ~c"1.1.7"},
{:parse_trans, ~c"Parse transform library", ~c"3.4.1"},
{:syntax_tools, ~c"Syntax tools", ~c"3.0.1"},
{:certifi, ~c"CA bundle adapted from Mozilla by https://certifi.io",
~c"2.12.0"},
{:mimerl, ~c"Library to handle mimetypes", ~c"1.2.0"},
{:idna, ~c"A pure Erlang IDNA implementation", ~c"6.1.1"},
{:unicode_util_compat, ~c"unicode_util compatibility library for Erlang < 20",
~c"0.7.0"},
{:ssl, ~c"Erlang/OTP SSL application", ~c"10.9.1.3"},
{:public_key, ~c"Public key infrastructure", ~c"1.13.3.2"},
{:asn1, ~c"The Erlang ASN1 compiler version 5.0.21.1", ~c"5.0.21.1"},
{:crypto, ~c"CRYPTO", ~c"5.1.4.2"},
{:logger, ~c"logger", ~c"1.15.7"},
{:iex, ~c"iex", ~c"1.15.7"},
{:elixir, ~c"elixir", ~c"1.15.7"},
{:compiler, ~c"ERTS CXC 138 10", ~c"8.2.6.4"},
{:stdlib, ~c"ERTS CXC 138 10", ~c"4.3.1.3"},
{:kernel, ~c"ERTS CXC 138 10", ~c"8.5.4.2"}
]
iex(10)>
The text was updated successfully, but these errors were encountered:
Steps to reproduce
Call
Timex.Timezone.local/0
when the system time is within 1 hour after DST starts (the missing hour of local time). For example, at ~U[2024-03-31 01:13:41.097331Z] when TZ=Europe/London.Description of issue
I would expect
Timex.Timezone.local/0
to return the DST timezone like it does in the hour that follows the failing case.Instead, it returns a
:could_not_resolve_timezone
error.Timex.Timezone.local/0
callsTimex.Timezone.local/1
with the current UTC. The documentation forTimex.Timezone.local/1
doesn't say if the argument is in UTC or local time.Here is an example session with timex 3.7.11 and TZ=Europe/London. (2) and (3) show it working before DST starts. (4), (5) and (6) show it failing during the changeover. (7) and (8) show it working again after the changeover.
The text was updated successfully, but these errors were encountered: