Artigos de Tecnologia e Negócios > Programação

Golang: trabalhando com datas

Guilherme Lima
Guilherme Lima

Neste artigo veremos como editar Datas em Golang, sem depender de Strings.

Considere que uma empresa de estacionamento registra o dia e a hora de entrada e saída dos carros manualmente, inserindo no sistema cada informação em um campo separado:

package main

import (
    "fmt"
)
func main() {
    data := "10/Jun/2019 - 08:30:45"
    fmt.Println(data)
}

Tendo como saída o seguinte resultado:

10/Jun/2019 - 08:30:45

Atualmente, o valor recebido de data e hora está contido em uma string. Com isto podemos colocar qualquer valor nela, ou seja, ela pode receber tanto um texto quanto um número e isso pode ser um problema.

Geralmente, as linguagem de programação tem suas próprias libs para auxiliar este trabalho, como DateTime no C#, ou Date do Python e no Golang não é diferente.

Formatação de data e hora

No Golang temos o pacote Time, que contém algumas funções para trabalhar com data e hora, além de facilitar a nossa vida durante formatação que vai ser exibida para o usuário.

import (
    "fmt"
    "time"
)

Agora que importamos o pacote time dentro do nosso código, podemos fazer uso de suas funções.

Utilizando o time Now()

No lugar de escrever a data e a hora em uma string, vamos utilizar a função time.Now():

func main() {
    data := time.Now()
    fmt.Println(data)
}

E temos como resultado:

2019-05-03 10:29:46.986583 -0300 -03 m=+0.000178751

Observe que temos informações demais aqui e este não é o resultado que nós gostaríamos.

Formatando datas com Golang

Quando queremos formatar em Golang, utilizamos a palavra format, seguido de algo bem diferente de outras linguagens de programação. Isso porque os formatos de data e hora parecem com a data e hora reais e não Y-m-d H:i:s como no PHP, por exemplo.

Vejamos então o que queremos editar e o em código Go:

O que queremos editarcódigo
dia (com zero)02
dia (sem o zero)2
dia da semana (inteiro)Monday
dia da semana abreviadoMon
mês com número (com zero)01
mês com número (sem zero)1
mês (nome inteiro)January
mês (nome abreviado)Jan
ano (inteiro)2006
ano (abreviado)06
hora (com zero)03
hora (sem zero)3
hora (formato 24 horas)15
minutos (com zero)04
minutos (sem zero)4
segundos (com zero)05
segundos (sem zero)5

Certo, mas como fica o nosso código?

package main

import (
    "fmt"
    "time"
)
func main() {
    data := time.Now()
    fmt.Println(data.Format(("02/Jan/2006 15:04:05 ")))
}

E nosso resultado será:

03/May/2019 11:30:11 

Você pode acessar o código neste link:

Para deixar claro a diferença de trabalhar com data utilizando Golang e outras linguagens, comparamos com as linguagens Java e C:

GO:


2006-01-02
20060102
January 02, 2006
02 January 2006
02-Jan-2006
01/02/2006
01/02/06
010206
Jan-02-06
Jan-02-2006
06
Mon
Monday
Jan-06

Java:


yyyy-MM-dd
yyyyMMdd
MMMM dd, yyyy
dd MMMM yyyy
dd-MMM-yyyy
MM/dd/yy
MM/dd/yyyy
MMddyy
MMM-dd-yy
MMM-dd-yyyy
yy
EEE
EEEE
MMM-yy

C:


%F
%Y%m%d
%B %d, %Y
%d %B %Y
%d-%b-%Y
%D
%m/%d/%Y
%m%d%y
%b-%d-%y
%b-%d-%Y
%y
%a
%A
%b-%y

Encontrar o formato de data e tempo

Neste link, você pode montar a formatação ideal e ver também outros tipos como segundos, milissegundos, entre outros.

Conclusão.

Não precisamos manipular nossas datas usando o tipo String. Podemos usar um tipo preparado para trabalhar com datas e tempo no Golang: Time,, que formata nossa lista de uma maneira mais padronizada e de fácil compreensão.

E aí, o que achou do artigo? Fica até mais fácil trabalhar com datas no Golang agora, não acha? Se quiser continuar estudando sobre o assunto, dê uma olhada em nosso curso na Alura de GO lang continue aprendendo ainda mais!

Leia também:

Artigos de Tecnologia e Negócios > Programação

Cursos profissionais de Programação é na Alura, comece agora!

  • 998 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 998 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 998 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 998 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana