Converter String em DateTime Object em Java
-
Utilize
SimpleDateFormat
ejava.util.Date
para converter uma string de data num objecto DateTime em Java - Utilize a Biblioteca de Data e Hora Java 8 para converter uma String de data em formato de data e hora
-
Utilize
joda-time
para converter uma string de data em formato de data e hora -
Converter a data da string para
Timestamp
comTimestamp
Construtor em Java -
Converter a string de data em
Timestamp
comLocalDate
em Java -
Converter a data da string em
Timestamp
com o métodoatStartOfDay()
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn