- Faça Clone deste projeto
- Instale as dependências
- Inicie a aplicação
git clone https://github.com/pedro-demeu/timezones-e-utc.git
yarn
yarn dev
- Ter uma informação comum entre todos os usuários.
- Data em UTC, fica fácil manipular quando tem alterações em horário de verão.
- Facilidade no armazenamento da informação
- Relatórios são mais fáceis de serem emitidos.
- Comparação de Datas (maior ou menor que x período)
- Timezone é apenas uma view
Basicamente é como representamos uma data em um ponto unico durante o mundo. É muito interessante que usemos essa estratégia para mostrar alguma informação de data no timezone do usuário independente do lugar no mundo em que ele esteja.
É um padrão de tempo utilizado como referência para coordenar o horário em diferentes partes do mundo. A hora GMT é baseada no meridiano de Greenwich, que fica em Londres, e é usada como ponto de referência para definir fusos horários e coordenar eventos internacionais
- Unix Time (número de milisegundos desde 01 de janeiro de 1970)
- ISO
new Date().getTime() // 1691954713415
new Date(1691954713415) // Sun Aug 13 2023 16:25:13 GMT-0300 (Brasilia Standard Time)
new Date().toISOString() // '2023-08-03T20:13:46.213Z'
new Date('2023-08-03T20:13:46.213Z') // Thu Aug 03 2023 17:13:46 GMT-0300 (Brasilia Standard Time)
🔑 O "Z" ao final do timestamp "2023-08-03T20:13:46.213Z" indica a presença do UTC e representa a sigla "Zulu", que é o código de tempo utilizado para o UTC na linguagem militar e de aviação.
- Quando um usuário é criado (Apenas exibição da data)
- Quando acontece um evento físico (Mostrar data com fuso-horário do local)
Por isso, é importante entender quando uma data pode ser relativa e só converte para timezone do usuário ou quando converte para um fuso-horário específico onde vai acontecer algo local.
Outro exemplo, o Whatsapp, se alguém em londres te mandar mensagem às 21h40 do dia 03/08/23, você em SP, vai receber a mensagem instantaneamente e com a data do seu timezone (17h40 - 03/08/23).
Podemos usar os nomes das timezones para converter uma data para qualquer horário que quisermos no mundo desde que esteja em UTC
Fonte: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- date-fns
- date-fns-tz