How to Convert Date-Times using Prevailing Timezones

Out[]=
Wed 23 Nov 2022
Mathematica Version
Out[]=
13.1.0 for Microsoft Windows (64-bit) (June 16, 2022)

Issue

For some locales, the TimeZones of Daylight saving- and standard time can differ. The locale Chicago/Illinois the DayLight Saving time timezone is GMT-5 and the one for standard time it is GMT-6.
Conversion of historic dates that were recorded as e.g. UTC (GMT-0) may give issues if the user machine’s TimeZone is different than the prevailing timezone (at the historic date).
​
For example this Unix time 1652439989 was recorded in May 13, 2022 UTC during Daylight Saving time in which the prevailing timezone was GMT-5.
​
If you convert the date-time in November 2022 , the timezone is GMT-6 and you’ll get this result.
In[]:=
FromUnixTime[1652439989]
Out[]=
Fri 13 May 2022 05:06:29GMT-6
The conversion uses the current (machine’s) timezone offset of GMT-6 and not the prevailing TimeZone at the historic date.
This is an issue when dealing with transactional data e.g. Bitcoin or financial data, but also online attendance log data (e.g. Zoom). The times may be offset by 1 hour.

Workaround

I created my own Daylight saving function to determine the prevailing timezone at the historic date-time
In[]:=
ClearAll[DayLightSavingDates]​​​​DayLightSavingDates[year_Integer/;year>=2007]:=DateSelect[DateRange[DateObject[{year,1,1}],DateObject[{year,12,31}]],((#Month==3&&#DayName==Sunday&&#DayNameInstanceInMonth==2)||(#Month==11&&#DayName==Sunday&&#DayNameInstanceInMonth==1))&];​​​​ConvertDates[date_DateObject]:=If[DateWithinQ[DateInterval@DayLightSavingDates[DateValue[date,"Year"]],date],TimeZoneConvert[date,"GMT-5"],TimeZoneConvert[date,"GMT-6"]];
Let’s use two examples to test the functions:
In[]:=
ConvertDates@FromUnixTime[1652439989]
Out[]=
Fri 13 May 2022 06:06:29GMT-5
In[]:=
ConvertDates@FromUnixTime[1640630766]
Out[]=
Mon 27 Dec 2021 12:46:06GMT-6
Now the date-time conversion is correct.
​
Is there an issue with date-time conversion using prevailing timezone, or am I missing a date-time function or option?