Python Datetime: um guia abrangente com exemplos

Python Datetime: um guia abrangente com exemplos

Ao trabalhar com projetos de dados em Python, é mais provável que você use funções de data e hora. Quase todo conjunto de dados com o qual você trabalhará terá uma coluna de data e hora que você desejará manipular de acordo com suas necessidades e requisitos do projeto.

Felizmente, o Python vem com seu próprio módulo interno chamado datetime que permite representar, manipular e executar operações com instâncias de data e hora, como datas, horas e combinações dos dois. Dominar o módulo Python datetime ajudará você a fazer análises de séries temporais mais robustas em seus projetos.

O módulo Python datetime é uma ferramenta para lidar com datas, horas e intervalos de tempo. Ele permite que você execute várias operações em datas e horas de maneira direta.

Python Datetime: um guia abrangente com exemplos

Resumo de programação – código-fonte e código binário na tela do desenvolvedor de software. Tema preto com sintaxe colorida.

Usando o módulo datetime em Python , você pode trabalhar facilmente com valores de data e hora, gerenciar fusos horários, realizar cálculos e até lidar com formatação e análise de várias representações. Essa funcionalidade torna o módulo datetime uma ferramenta essencial em muitos aplicativos, desde o processamento de dados até o agendamento de eventos e muito mais.

Antes de começar a usar o módulo datetime do Python em seus projetos, é crucial entender suas classes subjacentes. Na seção abaixo, veremos as cinco classes principais do módulo DateTime do Python. Vamos entrar nisso!

Índice

Quais são as 5 classes principais do módulo Python Datetime?

O módulo Python Datetime faz parte da biblioteca padrão que fornece classes para manipular e trabalhar com datas, horas, fusos horários e durações.

O módulo consiste em cinco classes principais:

  1. Data hora

  2. Data,

  3. Tempo,

  4. Time delta

  5. Fuso horário.

    Veremos cada classe seguida de exemplos de casos de uso para ajudá-lo a entender melhor o conceito.

Como usar a classe Datetime

A classe Python Datetime é a classe mais usada no módulo. Ele representa um único ponto no tempo com atributos como ano, mês, dia, hora, minuto, segundo e microssegundo.

Algumas operações comuns com a classe Python Datetime incluem:

  • datetime.datetime.now()

Esta função permite obter a data e hora atuais. Veja a seguir um exemplo de recuperação da data e hora atuais:

import datetime

# Get the current date and time
now = datetime.datetime.now()

print("Current date and time: ", now)

Isso produzirá a data e hora atuais no momento da execução no formato AAAA-MM-DD HH:MM:SS.ssssss.

Python Datetime: um guia abrangente com exemplos

  • datahora.datahora

Esta função permite criar um objeto personalizado de data e hora. Veja a seguir um exemplo de uso de datetime.datetime em seu código:

from datetime import date

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

print("Custom date and time: ", custom_date)

Além das funções acima, a classe Datetime também fornece métodos para trabalhar com data e hora, como:

Python Datetime: um guia abrangente com exemplos

  • strftime() :

O método permite formatar os objetos de data e hora como uma string. Veja a seguir um exemplo do método strftime():

import datetime

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")

print("Formatted date and time: ", formatted_date)

Este código converterá o objeto datetime em uma string:

Python Datetime: um guia abrangente com exemplos

  • strptime() :

Esta função na classe datetime permite que você analise uma string que representa objetos de data e hora em um único objeto Datetime. Veja a seguir um exemplo de análise de uma data armazenada como string para um objeto Datetime:

import datetime

# String representing a date and time
date_string = "May 22, 2023, 17:40"

# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")

print("Parsed date and time: ", parsed_date)

Isso converterá a string em um objeto DateTime.

Python Datetime: um guia abrangente com exemplos

Como usar a classe de data

A classe Date permite lidar exclusivamente com objetos de data (ano, mês e dia). Você pode criar objetos de data com a classe de data.

Algumas operações comuns com a classe Date incluem:

  • datahora.data.hoje()

Esta função na classe de data permite que você obtenha a data atual. Veja a seguir um exemplo de recuperação da data atual com a classe date:

import datetime

# Get the current date
today = datetime.date.today()

print("Today's date: ", today)

Este código Python produzirá a data atual no momento da execução no formato AAAA-MM-DD.

Python Datetime: um guia abrangente com exemplos

No momento da redação deste artigo, a data atual era 2023-05-22.

  • datetime.date()

Esta função na classe de data permite criar objetos de data. O exemplo demonstra a criação de um objeto de data personalizado com a função datetime.date():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

print("Custom date: ", custom_date)

Na função datetime.date(), você fornece o ano, o mês e o dia como argumentos.

Este script produzirá 2023-05-22, pois você criou um objeto de data personalizado para a data de 22 de maio de 2023.

Python Datetime: um guia abrangente com exemplos

A classe Date também fornece métodos úteis, como:

  • dia da semana()

Este método na classe date retorna o dia da semana (0 para segunda-feira, 1 para terça-feira, etc.). O exemplo a seguir demonstra o método weekday():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Get the day of the week
day_of_week = custom_date.weekday()

print("Day of the week: ", day_of_week)

Neste exemplo, custom_date.weekday() retornará 0 porque 22 de maio de 2023 cai em uma segunda-feira.

Python Datetime: um guia abrangente com exemplos

  • strftime()

Este método na classe de data permite que você formate o objeto de data como uma string . O exemplo a seguir demonstra a função strftime():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")

print("Formatted date: ", formatted_date)

Isso produzirá a data formatada como “dia do mês, ano”.

Python Datetime: um guia abrangente com exemplos

  • strptime()

Este método permite que você analise uma string representando uma data em um objeto Date. Veja a seguir um exemplo de conversão de uma data de string em um objeto Date:

import datetime

# String representing a date
date_string = "May 22, 2023"

# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()

print("Parsed date: ", parsed_date)

Isso produzirá o objeto de data criado a partir da string de data.

Python Datetime: um guia abrangente com exemplos

Como usar a classe Time

The Time class allows you to work with time instances (hour, minute, second, microsecond). With the time class, you can create a custom time object with datetime.time().

The following example demonstrates creating a custom time object:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

print("Custom time: ", custom_time)

In the datetime.time() function, you provide the hour and minute as arguments.

This script will output 17:40:00, as specified in the Python code.

Python Datetime: um guia abrangente com exemplos

The Time class provides useful methods, such as:

  • strftime()

This method allows you to format the time object as a string. Below is an example of this function:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")

print("Formatted time: ", formatted_time)

This will output the local time formatted as “Hour:Minute”.

Python Datetime: um guia abrangente com exemplos

  • strptime()

This function allows you to parse a string representing time into a Time object. The following example demonstrates this function:

from datetime import time

# String representing a time
time_string = "17:40"

# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()

print("Parsed time: ", parsed_time)

This will output the time objects created from the time string.

Python Datetime: um guia abrangente com exemplos

How to Use The Timedelta Class

The Timedelta class allows you to represent represents a duration or difference between two dates or times.

With Timedelta class, you can perform the following operations:

  • Calculate the difference between two dates or times

An example of calculating the difference between two dates is given below:

 import datetime

# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)

# Calculate the difference between the two dates
date_difference = date2 - date1

print("Difference between the dates is: ", date_difference.days, "days")

In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.

Python Datetime: um guia abrangente com exemplos

  • Add or subtract a duration to a date or time

An example of adding a duration to a date is given below:

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Create a duration of 10 days
duration = datetime.timedelta(days=10)

# Add the duration to the date
new_date = custom_date + duration

print("New date: ", new_date)

In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.

Python Datetime: um guia abrangente com exemplos

How to Use the Timezone Class

The Timezone class allows you to handle time zones and daylight saving time adjustments.

You can perform the following operation with timezone class:

  • Create a timezone object

To create a timezone object, you can use the datetime.timezone() function. The following example demonstrates creating a timezone object:

import datetime

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

print("Timezone object: ", two_hours_ahead)

In this example, two_hours_ahead is a timezone object representing a timezone that is 2 hours ahead of Coordinated Universal Time (UTC).

This script will output a timezone object like .

Python Datetime: um guia abrangente com exemplos

  • Object with a specific timezone

To achieve this, you can use the .replace(tzinfo=tz) function. The following example demonstrates this function:

import datetime

# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)

print("Aware datetime object: ", aware_datetime)

In this example, naive_datetime is a datetime object that does not have any timezone information. The two_hours_ahead variable is a timezone object representing a timezone that is 2 hours ahead of UTC.

The replace(tzinfo=two_hours_ahead) method is used to create a new datetime object with the same date and time as naive_datetime, but with tzinfo set to two_hours_ahead.

Python Datetime: um guia abrangente com exemplos

The Timezone helps you maintain accurate and consistent time values when working with data that spans multiple time zones.

You have gone through some of the most important functions in the datetime module in Python. In the next section we will implement some of the above functions to a case studywhich will give you a practical look into the implementation of these datetime module in your projects.

Implementing the DateTime Module Functions to a Case Study

Let’s consider a case study where we are given a dataset of different events that happened around the world. The dataset has corresponding dates and times in a string format.

Nossa tarefa é transformar essas datas e horas em objetos DateTime e executar operações neles conforme necessário.

Suponha que tenhamos o seguinte conjunto de dados:

Python Datetime: um guia abrangente com exemplos

Se verificarmos os tipos de dados da variável, veremos que a data e a hora são armazenadas como uma string. Portanto, antes de realizar qualquer análise, devemos converter as colunas de data e hora para um formato adequado.

Para fazer isso, podemos usar o seguinte código:

import datetime

# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))

print(df)

Neste bloco de código, primeiro criamos uma nova coluna 'DateTime' em seu DataFrame concatenando as colunas 'Date' e 'Time'. Em seguida, aplicamos a função datetime.strptime a cada valor nessa nova coluna para converter as strings de data e hora em objetos datetime. Finalmente, imprimimos o DataFrame para ver o resultado.

Python Datetime: um guia abrangente com exemplos

A próxima coisa que gostaríamos de fazer é calcular a diferença entre dois eventos. Para isso podemos usar o seguinte código:

duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)

Este script Python calculará a duração entre 'Event1' e 'Event2'.

Python Datetime: um guia abrangente com exemplos

Finalmente, vamos converter os objetos datetime em um fuso horário diferente. When pode conseguir isso usando as funções Timezone no módulo datetime.

# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))

# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))

print(df)

Neste código, criamos um objeto de fuso horário para UTC. Em seguida, criamos uma nova coluna em nosso DataFrame chamada 'DateTime_UTC' aplicando uma função lambda à nossa coluna 'DateTime'. Isso substituirá as informações de fuso horário de cada objeto datetime por UTC.

Python Datetime: um guia abrangente com exemplos

Por meio do estudo de caso de exemplo acima, você vê como as várias funções fornecidas pelo módulo DateTime funcionam juntas para manipular datas e horas em um formato adequado.

Agora que você está familiarizado com algumas das funções do módulo datetime, vamos ver algumas funções adicionais que você desejará usar ao assumir projetos mais complexos.

Além das funções listadas acima, existem muitas outras funções úteis que você pode usar dependendo do problema em questão. Os desenvolvedores Python geralmente mantêm uma página de documentação aberta para procurar funções que possam atender às suas necessidades. E sugerimos que você faça o mesmo!

Funções adicionais de data e hora

Nesta seção, discutiremos funções adicionais no módulo Python datetime . Isso inclui recuperar os nomes dos dias da semana, meses e dias da semana, juntamente com a função ctime() .

Como recuperar dias da semana de uma data

O módulo datetime vem com uma função weekday() , que retorna o dia da semana como um número inteiro (segunda-feira é 0 e domingo é 6).

Para usar esta função, você pode chamá-la em um objeto date ou datetime.

import datetime

today = datetime.date.today()
weekday_number = today.weekday()

print(weekday_number)

A saída do código acima é dada na imagem abaixo:

Python Datetime: um guia abrangente com exemplos

A data local atual é 23/05/2023 e o dia da semana é segunda-feira.

Como recuperar nomes de mês e dia da semana de uma data

datetime também permite que você recupere o nome do mês e o dia da semana.

Você pode usar a função strftime() , que formata um objeto de data ou datahora como uma string.

Veja a seguir um exemplo de como usar a função strftime() para obter o nome do mês e o dia da semana:

import datetime

today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')

print(weekday_name)
print(month_name)

Esse código imprimirá o nome do dia da semana e o nome do mês na saída.

Python Datetime: um guia abrangente com exemplos

Como usar a função Ctime

A função ctime() no módulo datetime retorna uma representação de string de um objeto date ou datetime, formatado como “Day Mon DD HH:MM:SS YYYY”.

ctime é um método para um objeto datetime , não uma função autônoma.

Veja a seguir um exemplo de uso da função ctime em seu código:

import datetime

now = datetime.datetime.now()
formatted_date = now.ctime()

print(formatted_date)

O código acima retornará uma representação de string do objeto de data.

Python Datetime: um guia abrangente com exemplos

Para saber mais sobre como trabalhar com dados de séries temporais, assista ao seguinte vídeo:

Pensamentos finais

Como programador Python, é importante dominar o módulo datetime. É um kit de ferramentas que permite lidar com datas, horas e intervalos de tempo. Esses são os elementos que você encontrará com frequência em dados do mundo real.

Você precisará deste módulo para converter strings em objetos datetime, lidar com conversões de fuso horário e executar operações em datas e horas.

Ao aprender a usar o módulo datetime, você estará mais bem preparado para lidar com essas tarefas em seus próprios projetos!


O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.

Apresentar insights usando a técnica de visuais dinâmicos multithread no LuckyTemplates

Apresentar insights usando a técnica de visuais dinâmicos multithread no LuckyTemplates

Este tutorial abordará como usar a técnica Multi Threaded Dynamic Visuals para criar insights de visualizações de dados dinâmicos em seus relatórios.

Introdução ao contexto de filtro no LuckyTemplates

Introdução ao contexto de filtro no LuckyTemplates

Neste artigo, analisarei o contexto do filtro. O contexto do filtro é um dos principais tópicos sobre os quais qualquer usuário do LuckyTemplates deve aprender inicialmente.

Melhores dicas para usar os aplicativos no serviço online do LuckyTemplates

Melhores dicas para usar os aplicativos no serviço online do LuckyTemplates

Quero mostrar como o serviço online do LuckyTemplates Apps pode ajudar no gerenciamento de diferentes relatórios e insights gerados de várias fontes.

Analisar alterações de margem de lucro ao longo do tempo – Analytics com LuckyTemplates e DAX

Analisar alterações de margem de lucro ao longo do tempo – Analytics com LuckyTemplates e DAX

Aprenda a calcular suas alterações de margem de lucro usando técnicas como ramificação de medida e combinação de fórmulas DAX no LuckyTemplates.

Ideias de materialização para caches de dados no DAX Studio

Ideias de materialização para caches de dados no DAX Studio

Este tutorial discutirá sobre as ideias de materialização de caches de dados e como elas afetam o desempenho dos DAXs no fornecimento de resultados.

Relatórios de negócios usando o LuckyTemplates

Relatórios de negócios usando o LuckyTemplates

Se você ainda estiver usando o Excel até agora, este é o melhor momento para começar a usar o LuckyTemplates para suas necessidades de relatórios de negócios.

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber