summaryrefslogtreecommitdiff
path: root/lang/erlang-runtime25/files/patch-lib_stdlib_src_calendar.erl
blob: 52854bdbd9595ebea04afa60f099ed0cd7444981 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--- lib/stdlib/src/calendar.erl.orig	2025-04-16 13:06:44 UTC
+++ lib/stdlib/src/calendar.erl
@@ -297,11 +297,19 @@ local_time_to_universal_time(DateTime, IsDst) ->
       DateTime1 :: datetime1970(),
       DateTime :: datetime1970().
 local_time_to_universal_time_dst(DateTime) ->
-    UtDst = erlang:localtime_to_universaltime(DateTime, true),
-    Ut    = erlang:localtime_to_universaltime(DateTime, false),
     %% Reverse check the universal times
-    LtDst = erlang:universaltime_to_localtime(UtDst),
-    Lt    = erlang:universaltime_to_localtime(Ut),
+    {UtDst, LtDst} =
+        try
+            UtDst0 = erlang:localtime_to_universaltime(DateTime, true),
+            {UtDst0, erlang:universaltime_to_localtime(UtDst0)}
+        catch error:badarg -> {error, error}
+        end,
+    {Ut, Lt} =
+        try
+            Ut0 = erlang:localtime_to_universaltime(DateTime, false),
+            {Ut0, erlang:universaltime_to_localtime(Ut0)}
+        catch error:badarg -> {error, error}
+        end,
     %% Return the valid universal times
     case {LtDst,Lt} of
 	{DateTime,DateTime} when UtDst =/= Ut ->