Estou testando o MATLAB para garantir que estou aplicando corretamente sua funcionalidade. Um exemplo de uma fonte de dados inclui:
- A hora atual em segundos da época UNIX é: 1160967053
- A hora actual em Nova Iorque é Dom 15 Out 22:50:53 EDT 2006
Estou assumindo que o acima está correto e tentando reproduzir o resultado no MATLAB:
dt = datetime(1160967053, 'ConvertFrom', 'posixtime')
que retorna:
dt = 16-Oct-2006 02:50:53
Este resultado é de +4 horas: eu esperava +5 horas. O horário de Nova York é UTC -5. Há discrepância de 1 hora: horário de verão?
Ao adicionar o fuso horário à função, o resultado corresponde ao exemplo de referência:
T = datetime(1160967053,'ConvertFrom','posixtime','TimeZone','America/New_York')
T = 15-Oct-2006 22:50:53
Perguntas
- Se NYC é UTC -5, por que a diferença é de 4 horas?
Sim, o timestamp 1160967053 representa esta data (em UTC):
E a hora certa em Nova York é:
Sim, 4 (quatro) horas atrasadas.
A tag EDT diz claramente: East Daylight Time.
A próxima alteração no horário "Padrão" desse ano é:
Então, se avançarmos 15 dias, o tempo é:
Isso é EST: East Standard Time (ou 5 horas atrás de UTC+0)
Eu não vejo nenhum problema.