Remove Timex from `Plausible.Timezones` (#3899)
* use stdlib for timezones * Remove unused `Timezones.to_utc_datetime/2` --------- Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com>
This commit is contained in:
parent
3deca86201
commit
654558dbf9
|
|
@ -8,15 +8,19 @@ defmodule Plausible.Timezones do
|
|||
|
||||
@spec to_date_in_timezone(Date.t() | NaiveDateTime.t() | DateTime.t(), String.t()) :: Date.t()
|
||||
def to_date_in_timezone(dt, timezone) do
|
||||
to_datetime_in_timezone(dt, timezone) |> Timex.to_date()
|
||||
to_datetime_in_timezone(dt, timezone) |> DateTime.to_date()
|
||||
end
|
||||
|
||||
@spec to_datetime_in_timezone(Date.t() | NaiveDateTime.t() | DateTime.t(), String.t()) ::
|
||||
DateTime.t()
|
||||
def to_datetime_in_timezone(dt, timezone) do
|
||||
dt |> Timex.to_datetime("UTC") |> Timex.Timezone.convert(timezone)
|
||||
dt |> to_datetime() |> DateTime.shift_zone!(timezone)
|
||||
end
|
||||
|
||||
defp to_datetime(%NaiveDateTime{} = naive), do: DateTime.from_naive!(naive, "Etc/UTC")
|
||||
defp to_datetime(%Date{} = date), do: DateTime.new!(date, ~T[00:00:00], "Etc/UTC")
|
||||
defp to_datetime(%DateTime{} = already_dt), do: already_dt
|
||||
|
||||
defp build_option(timezone_code, acc, now) do
|
||||
case Timex.Timezone.get(timezone_code, now) do
|
||||
%Timex.TimezoneInfo{} = timezone_info ->
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ defmodule Plausible.TimezonesTest do
|
|||
assert to_date_in_timezone(~D[2021-01-03], "Etc/UTC") == ~D[2021-01-03]
|
||||
assert to_date_in_timezone(~U[2015-01-13 13:00:07Z], "Etc/UTC") == ~D[2015-01-13]
|
||||
assert to_date_in_timezone(~N[2015-01-13 13:00:07], "Etc/UTC") == ~D[2015-01-13]
|
||||
assert to_date_in_timezone(~N[2015-01-13 19:00:07], "Etc/GMT+12") == ~D[2015-01-14]
|
||||
assert to_date_in_timezone(~N[2015-01-13 19:00:07], "Etc/GMT+12") == ~D[2015-01-13]
|
||||
end
|
||||
|
||||
test "to_datetime_in_timezone/1" do
|
||||
|
|
@ -36,13 +36,13 @@ defmodule Plausible.TimezonesTest do
|
|||
second: 7,
|
||||
calendar: Calendar.ISO,
|
||||
month: 1,
|
||||
day: 14,
|
||||
day: 13,
|
||||
year: 2015,
|
||||
minute: 0,
|
||||
hour: 7,
|
||||
time_zone: "Etc/GMT-12",
|
||||
zone_abbr: "+12",
|
||||
utc_offset: 43_200,
|
||||
time_zone: "Etc/GMT+12",
|
||||
zone_abbr: "-12",
|
||||
utc_offset: -43_200,
|
||||
std_offset: 0
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue