Convertendo uma seqüência de caracteres em uma data no Groovy

Convertendo uma seqüência de caracteres em uma data no Groovy

1. Visão geral

Neste breve tutorial, aprenderemos como converter umString que representa uma data em um objetoDate real emGroovy.

No entanto, devemos ter em mente que essa linguagem é uma melhoria do Java. Portanto, ainda podemos usar todos os métodos Java antigos simples, além dos novos Groovy.

2. UsandoDateFormat

Em primeiro lugar, podemos analisar Strings em datas, como de costume, usando JavaDateFormat:

def pattern = "yyyy-MM-dd"
def input = "2019-02-28"

def date = new SimpleDateFormat(pattern).parse(input)

Groovy, no entanto, nos permite executar esta operação mais facilmente. It encapsulates the same behavior inside the convenience static methodDate.parse(String format, String input):

def date = Date.parse(pattern, input)

Em suma, esse método é uma extensão do objetojava.util.Date, e internamente ele instancia umjava.text.DateFormatupon every invocation, for thread safety.

2.1. Problemas de compatibilidade

Para esclarecer, o métodoDate.parse(String format, String input) está disponível desde a versão 1.5.7 do Groovy.

A versão 2.4.1 introduziu uma variante que aceita um terceiro parâmetro que indica um fuso horário:Date.parse(String format, String input, TimeZone zone).

A partir de 2.5.0, no entanto,there has been a breaking change e esses aprimoramentos não são mais enviados comgroovy-all.

Então, daqui para frente, eles precisam ser incluídos como um módulo separado, denominadogroovy-dateutil:


    org.codehaus.groovy
    groovy-dateutil
    2.5.6

Também existe a versão 3.0.0, mas atualmente está no estágio Alfa.

3. Usando JSR-310LocalDate

Desde a versão 8, Java introduziu um novo conjunto de ferramentas para lidar com datas: oDate/Time API.

Essas APIs são melhores por vários motivos eshould be preferred over the legacy ones.

Vamos ver como explorar os recursos de análisejava.time.LocalDate do Groovy:

def date = LocalDate.parse(input, pattern)

4. Conclusão

Vimos como transformar umString em umDate na linguagem Groovy, prestando atenção nas peculiaridades entre as versões específicas.

Como sempre, o código-fonte e os testes de unidade estão disponíveis emGitHub.