0% acharam este documento útil (0 voto)
2 visualizações46 páginas

Live de Python #203

O documento aborda a manipulação de datas e horários em Python, detalhando objetos como Date, Time e datetime, além de suas operações e formatações. Também menciona bibliotecas externas como dateparser e Pendulum para facilitar o trabalho com datas. O conteúdo é estruturado em tópicos que incluem aritmética de datas, timezone e dicas adicionais.

Enviado por

Well Silva
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações46 páginas

Live de Python #203

O documento aborda a manipulação de datas e horários em Python, detalhando objetos como Date, Time e datetime, além de suas operações e formatações. Também menciona bibliotecas externas como dateparser e Pendulum para facilitar o trabalho com datas. O conteúdo é estruturado em tópicos que incluem aritmética de datas, timezone e dicas adicionais.

Enviado por

Well Silva
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Manipulando data e horários com

DateTime

Live de Python #203


Roteiro

1. Datas 4. timezone
Manipulando as datas O tempo consciente

2. timedelta 5. Datas e horários


Variações de tempo Juntado tudo

3. Horários 6. Dicas e coisas adicionais


Manipulando horários Libs de terceiros, indicação de materiais,
testes etc…
[Link]/dunossauro [Link]/livedepython [Link]@[Link]

Ajude o projeto <3


Acássio Anjos, Ademar Peixoto, Alexandre Harano, Alexandre Souza, Alexandre Takahashi, Alexandre Villares, Alex Lima, Alynne
Ferreira, Alysson Oliveira, Ana Carneiro, Ana Padovan, Andre Azevedo, André Rocha, Aquiles Coutinho, Arnaldo Turque,
Bloquearsites Farewall, Bruno Barcellos, Bruno Freitas, Bruno Guizi, Bruno Oliveira, Bruno Ramos, Caio Nascimento, César
Almeida, Christiano Morais, Clara Battesini, Daniel Freitas, Daniel Haas, Danilo Segura, Dartz Dartz, David Kwast, Delton Porfiro,
Dhyeives Rodovalho, Diego Farias, Diego Guimarães, Dilenon Delfino, Dino Aguilar, Douglas Bastos, Douglas Braga, Douglas
Martins, Douglas Zickuhr, Eli Júnior, Emerson Rafael, Érico Andrei, Eugenio Mazzini, Euripedes Borges, Evandro Avellar, Everton
Silva, Fabio Barros, Fábio Barros, Fabio Castro, Fábio Thomaz, Felipe Rodrigues, Fernanda Prado, Fernando Rozas, Fernando
Sousa, Flávio Meira, Flavkaze Flavkaze, Franklin Silva, Gabriel Barbosa, Gabriel Simonetto, Geandreson Costa, Guilherme Felitti,
Guilherme Gall, Guilherme Ostrock, Gustavo Dettenborn, Gustavo Suto, Heitor Fernandes, Henrique Junqueira, Igor Taconi,
Ismael Ventura, Israel Gomes, Italo Silva, Jair Andrade, Jairo Lenfers, Janael Pinheiro, Jean Marcio, João Lugão, Johnny Tardin,
Jonatas Leon, Jonatas Oliveira, Jônatas Silva, Jorge Plautz, Jose Mazolini, Juan Gutierrez, Juliana Machado, Julio Silva, Kaio
Peixoto, Kaneson Alves, Leandro Botassio, Leandro Miranda, Leonardo Cruz, Leonardo Mello, Leonardo Nazareth, Lucas Adorno,
Lucas Mello, Lucas Mendes, Lucas Oliveira, Lucas Polo, Lucas Teixeira, Lucas Valino, Luciano Silva, Luciano Teixeira, Luiz Junior,
Luiz Lima, Luiz Paula, Maiquel Leonel, Marcelino Pinheiro, Marcelo Matte, Márcio Martignoni, Marco Mello, Marcos Gomes,
Marco Yamada, Maria Clara, Marina Passos, Mario Deus, Mateus Lisboa, Matheus Silva, Matheus Vian, Mírian Batista, Murilo
Andrade, Murilo Cunha, Murilo Viana, Natan Cervinski, Nicolas Teodosio, Osvaldo Neto, Otávio Barradas, Patricia Minamizawa,
Patrick Felipe, Paulo Braga, Paulo Tadei, Pedro Duarte, Pedro Henrique, Pedro Pereira, Peterson Santos, Priscila Santos, Rafael
Lopes, Rafael Rodrigues, Rafael Romão, Ramayana Menezes, Reinaldo Silva, Renan Moura, Renato Veirich, Riverfount
Riverfount, Robson Maciel, Rodrigo Brandao, Rodrigo Ferreira, Rodrigo Freire, Rodrigo Junior, Rodrigo Vaccari, Rodrigo Vieira,
Rogério Sousa, Ronaldo Silva, Rui Jr, Samanta Cicilia, Sara Selis, Thalysson Bogéa, Thiago Araujo, Thiago Borges, Thiago Bueno,
Thiago Curvelo, Thiago Moraes, Thiago Oliveira, Thiago S, Thiago Souza, Tiago Minuzzi, Tony Dias, Victor Wildner, Vinícius
Bastos, Vinicius Figueiredo, Vítor Gomes, Vitor Luz, Vlademir Souza, Vladimir Lemos, Walter Reis, Wellington Abreu, Wesley
Mendes, William Alves, Willian Lopes, Wilson Neto, Yury Barros

Obrigado você
E seus objetos Datas
Date

Date é um objeto que manipula datas no Python. É um objeto que se refere


a dias, meses e anos
Aritmética das datas

As datas podem ser comparadas entre si. Qual data é maior, menor igual
ou diferente
Atributos do objeto date

Você pode verificar individualmente os atributos de data, mês e ano:


Atributos do objeto date

Porém, são imutáveis


[Link]()

Se precisarmos alterar algum valor da data, devemos chamar o método


replace:
Conversões para strings

Se quisermos converter as datas para strings, seja para enviar para


internet, salvar em um arquivo, usar no banco de dados e etc.. temos a
seguinte tabela.

Caractere O que significa Exemplo

%d Dia 01

%a Dia da semana abreviado Seg

%A Dia da semana completo Segunda

%m Mês 01

%b Mês abreviado Jan

%B Mês completo Janeiro

%Y Ano 2022

Tabela completa: [Link]


Conversão com strftime
Para converter, usamos o método strftime e passamos uma string com a
formatação que desejamos:
Localização de datas
Caso seu sistema não seja e inglês, a localização do sistema deve ser
feita. Podemos fazer isso usando a biblioteca nativa locale.
Valores possíveis para locale

As variações de locale servem para qualquer localidade. Porém, se


manifestam de maneira diferente em sistemas operacionais diferentes.
Valores possíveis para locale

As variações de locale servem para qualquer localidade. Porém, se


manifestam de maneira diferente em sistemas operacionais diferentes.
Vale a pena uma live sobre
localização de sistemas?
Δ Timedelta
Variações de tempo/espaço Δ
Se quisermos manipular as datas usando o tempo/espaço. Usando Δ.

A ideia é conseguirmos fazer contas usando um objeto chamado


timedelta.
Time Manipulando o
tempo
Time
Time é o objeto responsável por atribuições de horas, minutos, segundos e
microssegundos. De forma independente os dias.
Também conta com rica comparação
Alterações em horários

Os objetos time NÃO são compatíveis com timedeltas.

Isso tem uma razão de ser. Na lógica do relógio não podemos alterar uma
hora para negativa sem ser outro dia. Mas como a data não está sendo
considerada. Não é possível de se fazer essa operação. A única forma é
usar .replace(), caso exista e necessidade.
Parser do formato ISO
Conversão para ISO
Formatação
Caractere O que significa Exemplo

%H Hora 00 - 23

%I Hora do relógio de ponteiro 00 - 12

%p Equivalente de localidade AM / PM

%M Minutos 00 - 59

%S Segundos 00-59

%f Microsegundos 000000 - 999999


timez
O tempo consciente one
Ingênuo vs Consciente

Uma derivação importante quando estamos falando sobre horários é que


horários podem ser Ingênuos e conscientes.

● Ingênuo é um horário qualquer, que não carrega informações sobre


timezone
● Consciente é um horário que contém o timezone
Tempo Universal Coordenado - UTC
Tempo universal Coordenado

O Brasil conta com 4 fusos:

● Fernando de Noronha: UTC-2


● Brasília: UTC-3
● Amazonas: UTC-4
● Acre: UTC-5
Usando timezone
Campos adicionais de strftime

Caractere O que significa Exemplo

%z Diferença do UTC -0300

%Z Nome do fuso Atributo no do fuso


date
time Juntando tudo
datetime
O objeto datetime representa os objetos date e time. Pode ser usado de
forma ingênua e consciente e conta com alguns métodos legais para
descobrirmos.
Definições

Os campos obrigatórios são referentes a date. E a resposta padrão


sempre voltará com hora e minutos em 0.
Operações

o objeto datetime conta com toda a aritmética disponível nos time deltas.
Operações podem gerar dados
Conversões de timezone
Formatação
O datetime conta com todos os formatadores de date, time e timezone
Parser

O datetime é o único objeto que conta com um parser de strings, o método


strptime.
Extras Não se vive só de
embutidos
dateparser
dateparser é uma biblioteca externa que pode nos ajudar a parsear valores
sem escrever os formatadores. É ótimo para sistemas que carregam
dados de diversas fontes ou para web scraping.
Pendulum

Pendulum é uma biblioteca de datetime externa para casos onde o


datetime nativo não atende todas as expectativas.

● Casos complexos de parse


● Por padrão os tipos já vem com timezone
● timezones descritivos
● Tem operações complexas:
○ Range de datetime
○ subtração e edição sem delta
● Formatadores mais simples
○ Sem uso de %
○ Conversões diretas para RFCs
Pendulum
Pendulum

Assista a live de
Python # 137
Freezegun

Na hora dos testes sempre temos problemas para manipular datas e


horários. Nessa hora o freezegun nos ajuda a pausar o tempo
[Link]/dunossauro [Link]/livedepython [Link]@[Link]

Ajude o projeto <3


Links citados

Dateparser: [Link]

Pendulum: [Link]

Live de Pendulum: [Link]

Freezegun: [Link]

Você também pode gostar