Python | Conversão de fuso horário

| | | | | | | |

Os elementos de data e hora do Python podem ser ingênuos ou atenciosos. Caso o elemento datetime tenha tzinfo, neste momento ele sabe. Outra coisa, a data e a hora são ingênuas. Para esclarecer o fuso horário de um objeto datetime, defina uma classe base abstrata, tzinfo. De qualquer forma, a biblioteca de data e hora do Python simplesmente caracteriza a classe base conceitual para tzinfo e deixa para outros implementarem a criação de tzinfo. É aqui que entra o módulo tz dateutil — ele oferece tudo o que é necessário para alternar os fusos horários upstream das informações de fuso horário do seu sistema operacional.

Configuração:

Use pip ou easy_install dateutil para instalar. Certifique-se de que o sistema operacional tenha dados de fuso horário.

No Linux, isso geralmente é encontrado em / usr / share / zoneinfo , e o pacote do Ubuntu é chamado tzdata. No caso do número de arquivos e diretórios em / usr / share / zoneinfo , como América / e Europa /, então está pronto para prosseguir.

Obter objeto UTC tzinfo — chamando tz.tzutc()

de dateutil import tz

tz.tzutc()

tzutc()

O deslocamento é 0 chamando o utcoffset() método com um objeto de data/hora UTC.


importar datetime

tz.tzutc(). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (0) 

Passe o caminho para o arquivo fuso horário em gettz() para obter objetos tzinfo para outros fusos horários.


tz.gettz ( `EUA / Pacífico` )

< /table>

tzfile (`/ usr / share / zoneinfo / US / Pacific`) 

< / p>

tz.gettz ( `Europa / Paris` )

tzfile(`/usr/share/zoneinfo/Europe/Paris` )

tz.gettz ( `US / Pacific ` ). utcoffset (datetime.datetime.utcnow ())

datetime.timedelta (-1, 61200) 

Para alterar um elemento de hora e data diferente de UTC para UTC, você precisa Lembrar o fuso horário. Se você tentar alterar o horário confiável para UTC, receberá uma exceção ValueError. Para lembrar o fuso horário datetime ingênuo, você basicamente chama a estratégia replace() com o tzinfo desejado. Uma vez que o elemento datetime tenha tzinfo, o UTC pode ser alterado nesse ponto chamando o método astimezone() com tz.tzutc() .

< / p>

abc = tz.gettz ( `EUA / Pacífico` )

dat = datetime.datetime ( 2010 , 9 , 25 , 10 , 36 )

dat.tzinfo
dat.astimezone (tz. tzutc())

Traceback (última chamada mais recente): Arquivo "/u sr/lib/python2.6/doctest.py", linha 1228, em __run compileflags, 1) no arquivo test.globs "", linha 1, em dat.astimezone (tz.tzutc ()) ValueError: astimezone () não pode ser aplicado a um datetime ingênuo 

dat.replace (tzinfo = abc)

datetime.datetime (2010, 9, 25, 10, 36, tzinfo = tzfile (`/ usr / share / zoneinfo / US / Pacific`)) 

Tudo está por trás do trabalho —

  • Os elementos tzutc e tzfile são duas subclasses de tzinfo.
  • Considerando tudo, eles sabem o deslocamento UTC correto para alterar o fuso horário (0 para tzutc) .
  • O elemento tzfile entende como varrer os documentos zoneinfo da estrutura de trabalho para obter informações fundamentais de contrapeso.
  • A estratégia replace() para o elemento nta datetime faz o que o nome — substitui qualidades.
  • Quando um datetime tem um tzinfo, a estratégia astimezone() provavelmente levará em consideração o tempo usando contrapesos UTC e, em seguida, substituirá o tzinfo atual por um novo tzinfo.

Código: Passe o argumento de palavra-chave tzinfos para o analisador dateutil para detectar fusos horários não reconhecidos


parser.parse ( `Quarta-feira, 4 de agosto de 2010 às 18h30 (CDT)` ,

fuzzy = True )

datetime. datetime (2010, 8, 4, 18, 30) 

tzinfos = { `CDT` : tz.gettz ( ` US / Central` )}

parser.parse ( `Quarta-feira, 4 de agosto de 2010 às 18h30 (CDT)` ,

fuzzy = True , tzinfos = tzinfos)

datetime.datetime (2010, 8, 4, 18, 30, tzinfo = tzfile (`/ usr / share / zoneinfo / US / Central`)) 

Python | Conversão de fuso horário __del__: Questions

Python | Conversão de fuso horário _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method