Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В мире программирования уже давно введены стандарты мирового и локального времени и процедуры преобразования между ними. Однако для обычных людей это все ново и они не обращают на это внимание. В результате дата рождения и другие даты могу “съехать” относительно того, что у вас записано в паспорте. Поэтому необходимо более щепетильно подходить к данным времени перед внесением их, особенно в блокчейн. Давайте разберемся
Пример
У вас в паспорте записана дата рождения например 1990-05-05 при этом также указывается место рождения. По нему можно определить местное время и сдвиг к мировому времени.
Если не обращать внимание на сдвиг в мировому времени, то программное обеспечение само поставить сдвиг по локальному времени у вас на устройстве, с которого вы вводите дату рождения, и может получиться так, что:
Вы родились во Владивостоке в 23 часа ночи - то есть UTC+10, а по Москве это минус 7 часов (московское время - это сдвиг UTC+03),
А заполняете форму своей персоны, например, находясь в Москве - в результате программное обеспечение на вашем локальном устройстве (например мобилка, веб-сайт, полная нода блокчейн Erachain) подставит UTC+03
Точное время рождения вы не ставите и вместо вас его ставит ваше устройство как 00:00.
В результате в блокчейн Erachain ваша дата рождения будет такая 1990-05-05 в 00:00 UTC+03
При этом если вы посмотрите дату рождения в международном стандарте, то получится что вы родились на день раньше: 1990-05-04 в 21:00.
Математически все верно, но по “человечески” не совсем!
Теперь если вы находитесь в Москве или Владивостоке, то день рождения (5=е число) не изменится даже с учетом применения локального сдвига.
Однако, если вы например находитесь в Европе, то ваша дата рождения станет 4-е число!
Это можно исправить если в поле где будет отображаться ваша дата рождения принудительно ввести смещение UTC+03.
Пути решения
При вводе важных дат обращать внимание на точное время до минут и на локальный сдвиг в международном стандарте UTC, а не полагаться на ваше локальное время, которое выставит ваше устройство (с которого вы вводите дату и время), и которое может не совпадать с нужным смещением, так как действие тогда происходило в другой местности с другим временным сдвигом. То есть нужно всегда вводить свой UTC, который соответствует нужной местности и точное время до минут.
При выводе даты и времени всегда обращать внимание на сдвиг по времени на том устройстве на котором вы его видите. Так в Японии у вас дата рождения будет 1990-05-05, а в Европе уже 1990-05-04, так как устройство которое будет производить отображение само подставит локальный сдвиг и преобразует дату в международном формате в локальное время. Поэтому обращайте внимание на UTC так же при выводе ваших данных и пересчитывайте время “в уме” или задайте UTC при выводе, если есть такая возможность.