Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida na explicação em artigo sobre datas e horários no Python!

Olá! Lendo o artigo sobre datas e horários no Pyhton (https://www.alura.com.br/artigos/lidando-com-datas-e-horarios-no-python) me deparei com uma informação incompleta, eu acho... Ao fazer o timedelta para um UTC - 3 o autor diz que usando (hours =- 3) não está correto: " Ué, se a gente colocou -3, por que apareceu tudo isso? Acontece que o timedelta entende -3 horas como 0 dias, 0 horas e 0 minutos - 3 horas, ou seja, -1 dia,21 horas. "

Logo depois ele segue o artigo ' Vamos, agora, criar um objeto timezone correspondente ao UTC-3, indicando essa diferença do UTC como parâmetro do construtor:

fuso_horario = timezone(diferenca) print(fuso_horario)

Temos justamente o que queríamos:

UTC-03:00

Finalmente, podemos converter o tempo da máquina para o de São Paulo, usando o método astimezone(): "

Mas sem explicar como ele fez com o timedelta para tornar o UTC - 3 e assim em seguida jogar o valor da diferença em timezone...

Alguem pode me explicar? Como eu faço, no exemplo abaixo, para consertar e ter o timedelta correto para o timezone UTC - 3 ??? diferenca = timedelta(hours=-3) print(diferenca)

Agradeço!

3 respostas
solução!

primeiro ele gera o timedelta:

diferenca = timedelta(hours=-3)
print(diferenca) #-1 day, 21:00:00

então ele gera o UTC a partir desse time delta que ele havia criado

fuso_horario = timezone(diferenca) 
print(fuso_horario)#UTC-03:00

Você também pode fazer assim:

from datetime import timedelta, timezone

fuso_horario = timezone(timedelta(hours=-3)) 
print(fuso_horario)#UTC-03:00

Bom dia!

Obrigado! Eu não havia entendido pelo artigo que o -1 dia,21 horas viraria UTC - 3 direto! Mas ta certo mesmo

Sim, se você pegar 1 dia = 24horas, -24h + 21h = -3h. É só uma questão de representação mesmo.