Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
При отправке данных на сервер клиент должен преобразовать все в UTC
Тут абсолютно равноценно — что клиент преобразует сам, что перешлет на сервер локальное время + смещение, для того, чтобы сервер сам уже выполнил это преобразование.
Второй нюанс с получением текущего времени — это то, что клиенту доверять нельзяидеально, когда клиентское время вообще нигде не фигурирует в БД в качестве метки времени, а везде используется только время БД (для MS SQL — это getUTCDate()).
Там много нюансов.
Например, Postgres хранит дату и время в типах timestamp и timestamp with time zone и оба занимают ровно 8 байт, то есть само смещение не хранится, это просто флаг. Его можно использовать лишь для того чтобы отличать локальное время от серверного.
Да и сами смещения нет смысла хранить вместе со временем, постоянно выходят новые законы и происходит много интересного.
Правильная работа с датой и временем