Manipulação de datas em Julia

Primeiros Passos
Ferramentas

Aprenda a criar, acessar e manipular datas em Julia, incluindo operações aritméticas e comparações entre períodos de tempo.

Autores
Afiliação

Universidade Estadual de Campinas

Universidade Estadual de Campinas

Data de Publicação

14 de setembro de 2025

Introdução

Manipular datas é essencial em diversas áreas da Estatística aplicada, como análise de séries temporais, estudos de sobrevivência, dados em painel, entre outras. Para isso, Julia oferece diversas ferramentas para trabalhar com datas de forma eficiente.

Neste post, vamos explorar como trabalhar com datas e horários em Julia utilizando o módulo Dates, que já faz parte da biblioteca padrão da linguagem. Você aprenderá a criar, manipular, extrair informações e realizar operações com objetos do tipo data.

Criação de objetos de data

Em primeiro lugar, é necessário carregar o módulo Dates, que já está presente na instalação padrão do Julia.

using Dates

Existem duas principais estruturas para representar datas em Julia:

  • Date: representa apenas a data (ano, mês e dia).
  • DateTime: representa data e hora, incluindo minutos, segundos, etc.

Podemos criar cada uma dessas estruturas por meio de funções de mesmo nome.

Date(2013, 3, 25)
2013-03-25
DateTime(2013, 3, 25)
2013-03-25T00:00:00

Você também pode criar esses objetos a partir de uma String que siga o formato correspondente:

Date("2015-03-25", dateformat"y-m-d")
2015-03-25
Date("2015-25-03", dateformat"y-d-m")
2015-03-25
DateTime("2015/03/25 14:30", dateformat"y/m/d HH:MM")
2015-03-25T14:30:00

Para obter a data e hora atual do sistema, podemos utilizar as funções today e now.

today() # Retorna apenas a data atual
2025-11-04
now()   # Retorna data e hora completas
2025-11-04T04:55:42.135

Acessar partes específicas da data

Existem funções que permitem extrair partes específicas de uma data. Para exemplificar, vamos criar um objeto chamado data.

data = Date("2015-03-25", dateformat"y-m-d")
2015-03-25

É possível extrair partes específicas de uma data utilizando funções que têm o mesmo nome dessas partes, como year(), month() e day().

year(data)  # Retorna o ano
2015
month(data) # Retorna o mês
3
day(data)   # Retorna o dia
25

Também existem funções que retornam múltiplos componentes de uma vez, como yearmonth e yearmonthday.

yearmonth(data)     # Retorna ano e mês
(2015, 3)
yearmonthday(data)  # Retorna ano, mês e dia
(2015, 3, 25)

Além de extrair elementos numéricos da data, também é possível obter informações em texto, como o nome do dia da semana e o nome do mês.

dayname(data)
"Wednesday"
monthname(data)
"March"

Informações de calendário

Também existem funções para verificar informações relacionadas ao calendário, como isleapyear, que indica se o ano é bissexto, e daysinmonth, que retorna o número de dias que aquele mês possui.

isleapyear(data) 
false
daysinmonth(data)
31

Períodos de tempo

Além disso, é possível criar objetos que representam períodos de tempo, os quais podem ser usados posteriormente em operações e manipulações com datas.

Year(5)
5 years
Day(7)
7 days
Nanosecond(200)
200 nanoseconds

Operações com datas

Existem diversas operações que podem ser realizadas com datas. Para ilustrar, utilizaremos os seguintes exemplos:

data1 = Date(2010, 11, 30) 
2010-11-30
data2 = Date(2011, 12, 25)
2011-12-25

Podemos calcular a diferença, em dias, entre duas datas distintas.

data2 - data1
390 days
data1 - data2
-390 days

Também podemos utilizar aqueles objetos que representam períodos de tempo para somar ou subtrair valores diretamente das datas.

data1
2010-11-30
data1 + Day(7)
2010-12-07
data1 - Year(2)
2008-11-30

Ainda, é possível realizar a comparação direta entre duas datas, verificando se uma desigualdade é verdadeira ou não.

data1 < data2
true

Por fim, também é possível criar intervalos entre duas datas, especificando a unidade de incremento, como dias ou anos.

collect(Date(2020, 03, 02):Day(1):Date(2020, 03, 10))  # Intervalo diário
9-element Vector{Date}:
 2020-03-02
 2020-03-03
 2020-03-04
 2020-03-05
 2020-03-06
 2020-03-07
 2020-03-08
 2020-03-09
 2020-03-10
collect(Date(2020, 03, 02):Year(1):Date(2025, 03, 02)) # Intervalo anual
6-element Vector{Date}:
 2020-03-02
 2021-03-02
 2022-03-02
 2023-03-02
 2024-03-02
 2025-03-02

Conclusão

Agora você já sabe como criar, acessar, manipular e realizar operações com datas em Julia! Esse conhecimento é fundamental para análises estatísticas que envolvem o fator tempo, como, por exemplo, o estudo de séries temporais e dados em painel.

Nota

Ferramentas de IA foram utilizadas para correção ortográfica e aprimoramento do texto.