Скажу намеком - если бы не было боли мы бы с вами тут не общались 🙂
Ну я вижу боль в следующем:
1) Если время пришло как 2020-09-17T08:44:03.543+0300, то применяя свой timeZone, js исключает тот, который пришел с данными, то есть 08:44:03.543+0300 становится 05:44:03.543 и уже сюда применяет timeZone клиента. Например, у клиента UTC+1, то получается 06:44:03.543 (что неправильно)
2) Если время пришло как 2020-09-17T08:44:03.543Z, то применяя timeZone клиента, js применяет его напрямую и получается - 09:44:03.543
Вы именно это имели в виду или кейсы похуже ?)
И да, дата, приходящая с бэка уже с сформированным UTC (2020-09-17T08:44:03.543Z) cчитается неким де-факто (при передачах с бэка на фронт) или не всегда это удобно ?