Converter String em DateTime Object em Java

Rupam Yadav 12 outubro 2023
  1. Utilize SimpleDateFormat e java.util.Date para converter uma string de data num objecto DateTime em Java
  2. Utilize a Biblioteca de Data e Hora Java 8 para converter uma String de data em formato de data e hora
  3. Utilize joda-time para converter uma string de data em formato de data e hora
  4. Converter a data da string para Timestamp com Timestamp Construtor em Java
  5. Converter a string de data em Timestamp com LocalDate em Java
  6. Converter a data da string em Timestamp com o método atStartOfDay() em Java
Converter String em DateTime Object em Java

Este artigo introduzirá como podemos converter uma determinada string num objecto DateTime utilizando diferentes abordagens e exemplos.

Utilize SimpleDateFormat e java.util.Date para converter uma string de data num objecto DateTime em Java

SimpleDateFormat é uma classe utilizada para analisar e formatar uma data em termos de locale-sensitive-manner. Permite-nos converter uma string em DateTime e converter um objecto DateTime numa string.

No código abaixo, utilizamos a string date_time, que é interpretada chamando o método parse na instância SimpleDateFormat dateParser. O formato em que queremos que a string date_time seja analizada é especificado dentro do construtor SimpleDateFormat.

Também criámos uma nova instância da classe SimpleDateFormat com um formato diferente. A data anulada é então formatada e impressa.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class StringToDateTime {
  public static void main(String[] args) {
    String date_time = "11/27/2020 05:35:00";
    SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
    {
      try {
        Date date = dateParser.parse(date_time);
        System.out.println(date);

        SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yy");
        System.out.println(dateFormatter.format(date));

      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
  }
}

Resultado:

Fri Nov 27 05 : 35 : 00 UTC 2020 11 / 27 / 20

Utilize a Biblioteca de Data e Hora Java 8 para converter uma String de data em formato de data e hora

A classe LocaleDate representa uma data em formato ISO sem tempo. A classe DateTimeFormatter é utilizada para a análise de datas em diferentes formatos. Podemos fornecer padrões personalizados chamando ofPattern() método em DateTimeFormatter.

A classe LocaleDate tem um método parse(), que toma a string de texto personalizada e um formatador específico inputFormat para analisar e obter uma instância de LocalDate. A instância LocaleDate obtida date é então formatada e impressa como saída.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
  public static void main(String[] args) {
    DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");

    LocalDate date = LocalDate.parse("11/27/2020 05:35:00", inputFormat);

    DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    System.out.println(date.format(outputFormat));
  }
}

Resultado:

11/27/2020

Utilize joda-time para converter uma string de data em formato de data e hora

A joda-time é uma biblioteca padrão DateTime que fornece um rico array de métodos para efectuar cálculos de data e hora. A dependência maven para incluir a funcionalidade desta biblioteca é dada abaixo.

 <!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.8</version>
    </dependency>

A DateTimeFormatter pode analisar as representações personalizadas de data e hora.

Criamos uma instância formatadora datetimeformat com um padrão personalizado. Chamando parseDateTimeTime na instância formatter dá um objecto DateTime utilizando a string personalizada dateTime.

Aqui criámos uma nova instância DateTimeFormatter com um padrão personalizado diferente. O método print() é chamado na nova instância que imprime o objecto DateTime joda_time num novo formato.

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class StringToDateTime {
  public static void main(String[] args) {
    String dateTime = "11/27/2020 05:35:00";
    DateTimeFormatter datetimeformat = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");

    DateTime joda_time = datetimeformat.parseDateTime(dateTime);
    System.out.println("joda_time : " + joda_time);

    DateTimeFormatter dateTimeFormatOut = DateTimeFormat.forPattern("MM/dd/yyyy");
    System.out.println("date time format out:  " + dateTimeFormatOut.print(joda_time));
  }
}

Resultado:

joda_time : 2020-11-27T05:35:00.000+05:30
date time format out:  11/27/2020

Converter a data da string para Timestamp com Timestamp Construtor em Java

Aqui, utilizamos o construtor do Timestamp para obter um objeto Timestamp. Primeiro, utilizamos a classe SimpleDateFormat para definir o formato de date e depois obtemos o objeto data utilizando o método parser(), depois utilizamos o método geteTime() para adicionar tempo com a data e obter um timestamp como resultado. Veja o exemplo abaixo.

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
      Date date = dateFormat.parse("12/10/1990");
      Timestamp timeStampDate = new Timestamp(date.getTime());
      System.out.println(timeStampDate);
    } catch (ParseException e) {
      System.out.println(e);
    }
  }
}

Resultado:

 1990-10-12 00:00:00.0

Converter a string de data em Timestamp com LocalDate em Java

No Java 8, ele adiciona um novo pacote java.time que contém várias classes para lidar com data e hora. Aqui, utilizamos a classe LocalDate desse pacote. Usamos o método parse() da classe LocalDate para obter o objeto LocalDate da string de data e então usamos o método atTime() para obter o objeto LocalDateTime que retorna uma data com hora. A classe now() é utilizada para obter a hora atual do sistema.

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class SimpleTesting {
  public static void main(String[] args) {
    LocalDate date = LocalDate.parse("2025-11-25");
    System.out.println(date);
    LocalDateTime dateTime = date.atTime(LocalTime.now());
    System.out.println(dateTime);
  }
}

Resultado:

2025 - 11 - 25 2025 - 11 - 25T09 : 44 : 56.814795

Converter a data da string em Timestamp com o método atStartOfDay() em Java

O método atStartOfDay() na classe LocalDate também é utilizado para obter o objeto LocalDateTime. Este método adiciona a hora à data no início do dia e retorna uma date-time em vez de uma simples data. Veja o exemplo abaixo.

import java.time.LocalDate;
import java.time.LocalDateTime;

public class SimpleTesting {
  public static void main(String[] args) {
    String strDate = "2019-10-20";
    LocalDate date = LocalDate.parse(strDate);
    LocalDateTime dateTime = date.atStartOfDay();
    System.out.println(dateTime);
  }
}

Resultado:

2019-10-20T00:00
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java DateTime