Converti stringa in oggetto DateTime in Java
-
Usa
SimpleDateFormat
ejava.util.Date
per convertire una stringa di data in un oggetto DateTime in Java - Utilizzare la libreria di data e ora di Java 8 per convertire una stringa di data nel formato di data e ora
-
Usa
joda-time
per convertire una stringa di data in formato data e ora -
Converti la data della stringa in
Timestamp
con il costruttoreTimestamp
in Java -
Converti la stringa della data in
Timestamp
conLocalDate
in Java -
Converti la data della stringa in
Timestamp
con il metodoatStartOfDay()
in Java
Questo articolo introdurrà come convertire una determinata stringa in un oggetto DateTime
utilizzando diversi approcci ed esempi.
Usa SimpleDateFormat
e java.util.Date
per convertire una stringa di data in un oggetto DateTime in Java
SimpleDateFormat
è una classe utilizzata per analizzare e formattare una data in modo sensibile alle impostazioni locali. Ci permette di convertire una stringa in DateTime
e di convertire un oggetto DateTime
in una stringa.
Nel codice sottostante, usiamo la stringa date_time
, che viene analizzata chiamando il metodo parse
sull’istanza SimpleDateFormat
dateParser
. Il formato in cui vogliamo che la stringa date_time
venga analizzata è specificato all’interno del costruttore SimpleDateFormat
.
Abbiamo anche creato una nuova istanza della classe SimpleDateFormat
con un formato diverso. La data analizzata viene quindi formattata e stampata.
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();
}
}
}
}
Produzione:
Fri Nov 27 05:35:00 UTC 2020
11/27/20
Utilizzare la libreria di data e ora di Java 8 per convertire una stringa di data nel formato di data e ora
La classe LocaleDate
rappresenta una data in formato ISO
senza ora. La classe DateTimeFormatter
viene utilizzata per analizzare le date in diversi formati. Possiamo fornire modelli personalizzati chiamando il metodo ofPattern()
su DateTimeFormatter
.
LocaleDate
ha un metodo parse()
, che accetta la stringa di testo personalizzata e un formattatore specifico inputFormat
per analizzare e ottenere un’istanza di LocalDate
. La data di istanza di LocaleDate
ottenuta viene quindi formattata e stampata come output.
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));
}
}
Produzione:
11/27/2020
Usa joda-time
per convertire una stringa di data in formato data e ora
joda-time
è una libreria standard di DateTime
che fornisce un ricco set di metodi per eseguire calcoli di data e ora. Di seguito viene fornita la dipendenza Maven per includere la funzionalità di questa libreria.
<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.8</version>
</dependency>
DateTimeFormatter
può analizzare rappresentazioni personalizzate di data e ora.
Creiamo un’istanza del formattatore datetimeformat
con un pattern personalizzato. La chiamata di parseDateTime
sull’istanza del formattatore fornisce un oggetto DateTime utilizzando la stringa personalizzata dateTime
.
Qui abbiamo creato una nuova istanza DateTimeFormatter
dateTimeFormatOut
con un pattern personalizzato diverso. Il metodo print()
viene chiamato sulla nuova istanza che stampa l’oggetto DateTime joda_time
in un nuovo 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));
}
}
Produzione:
joda_time : 2020-11-27T05:35:00.000+05:30
date time format out: 11/27/2020
Converti la data della stringa in Timestamp
con il costruttore Timestamp
in Java
Qui, usiamo il costruttore Timestamp
per ottenere un oggetto Timestamp
. Per prima cosa, usiamo la classe SimpleDateFormat
per impostare il formato di data
e poi otteniamo l’oggetto data usando il metodo parser()
, poi usiamo il metodo geteTime()
per aggiungere l’ora con la data e ottenere come risultato un timestamp
. Vedi l’esempio sotto.
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);
}
}
}
Produzione:
1990-10-12 00:00:00.0
Converti la stringa della data in Timestamp
con LocalDate
in Java
In Java 8, aggiunge un nuovo pacchetto java.time
che contiene diverse classi per gestire la data e l’ora. Qui, usiamo la classe LocalDate
di quel pacchetto. Usiamo il metodo parse()
della classe LocalDate
per ottenere l’oggetto LocalDate
dalla stringa della data e quindi usiamo il metodo atTime()
per ottenere l’oggetto LocalDateTime
che restituisce una data con l’ora. L’now()
viene utilizzato per ottenere l’ora corrente del 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);
}
}
Produzione:
2025-11-25
2025-11-25T09:44:56.814795
Converti la data della stringa in Timestamp
con il metodo atStartOfDay()
in Java
Il metodo atStartOfDay()
nella classe LocalDate
viene utilizzato anche per ottenere l’oggetto LocalDateTime
. Questo metodo aggiunge l’ora alla data all’inizio della giornata e restituisce una data-ora
piuttosto che una semplice data. Vedi l’esempio sotto.
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);
}
}
Produzione:
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