I think a better approach would be to use the built-in timezone-related functions. For example, using your Unix moment of 1652439989, we can find the timezone offset at that moment:
TimeZoneOffset["America/Chicago", "GMT", FromUnixTime[1652439989]]
(* -5. *)
You can convert to that offset:
TimeZoneConvert[FromUnixTime[1652439989], TimeZoneOffset["America/Chicago", "GMT", FromUnixTime[1652439989]]]
You can also just do this with an option in FromUnixTime:
FromUnixTime[1652439989, TimeZone -> TimeZoneOffset["America/Chicago", "GMT", FromUnixTime[1652439989]]]