Converti stringa in timestamp in Java

Rupam Yadav 12 ottobre 2023
  1. Usa TimeStamp.valueOf() per convertire una stringa in timestamp in Java
  2. Usa Date.getTime() per convertire una stringa in timestamp in Java
Converti stringa in timestamp in Java

In questo articolo, introdurremo due metodi per convertire una stringa in un timestamp in Java. Un timestamp viene utilizzato principalmente nei database per rappresentare l’ora esatta di alcuni eventi. La classe Timestamp che useremo in questo tutorial è una parte del pacchetto java.sql.Timestamp.

Usa TimeStamp.valueOf() per convertire una stringa in timestamp in Java

Useremo la funzione statica della classe TimeStamp - valueOf(). Prende una stringa come argomento e poi la converte in un timestamp. Una cosa importante da notare qui è prendersi cura del formato in cui la data e l’ora sono scritte nella stringa che vogliamo che sia convertita in un timestamp. È limitato a un formato fisso, che è yyyy-mm-dd hh:mm:ss.

Non possiamo cambiare il formato e quindi aspettarci il risultato corretto, ma invece, se usiamo un formato errato, avremo una IllegalArgumentException nell’output. Nell’esempio seguente, abbiamo utilizzato 2020-12-12 01:24:23 come data e ora nella stringa, che segue il formato corretto di yyyy-mm-dd hh:mm:ss.

Ora possiamo passare dateTime come unico argomento del metodo valueOf(string) e convertirà una stringa in un timestamp.

import java.sql.Timestamp;

public class StringToTimeStamp {
  public static void main(String[] args) {
    String dateTime = "2020-12-12 01:24:23";

    Timestamp timestamp = Timestamp.valueOf(dateTime);
    System.out.println(timestamp);
  }
}

Produzione:

2020-12-12 01:24:23.0

Possiamo sbarazzarci delle restrizioni di formattazione di data e ora usando lo stesso metodo valueOf(), ma invece di passare direttamente una stringa al metodo, useremo la classe LocalDateTime. Perché valueOf() accetta un LocalDateTime come argomento.

Nel codice seguente, dateTime ha una data e un’ora che vengono poi formattate utilizzando il metodo ofPatter() della classe DateTimeFormatter. Possiamo usare questo formattatore per analizzare e ottenere un oggetto LocalDateTime utilizzando la funzione LocalDateTime.from().

Una volta ottenuto un oggetto LocalDateTime, possiamo passarlo a Timestamp.valueOf(localDateTime) per convertire la stringa in un timestamp.

import java.sql.Timestamp;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class StringToTimeStamp {
  public static void main(String[] args) throws ParseException {
    String dateTime = "01/10/2020 06:43:21";
    DateTimeFormatter formatDateTime = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
    LocalDateTime localDateTime = LocalDateTime.from(formatDateTime.parse(dateTime));
    Timestamp ts = Timestamp.valueOf(localDateTime);

    System.out.println(ts);
  }
}

Produzione:

2020-10-01 06:43:21.0

Usa Date.getTime() per convertire una stringa in timestamp in Java

Il secondo metodo per convertire una stringa in un timestamp utilizza più classi e metodi. Proprio come LocalDateTime, possiamo utilizzare il nostro formato di data e ora nella stringa. Abbiamo usato la classe SimpleDateFormate() per formattare la stringa e poi analizzarla in un oggetto Date.

Abbiamo bisogno dell’oggetto Date perché ha l’oggetto getTime(), che restituisce la data e l’ora come long. Possiamo passare questo valore long al costruttore di Timestamp come abbiamo fatto di seguito.

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

public class StringToTimeStamp {
  public static void main(String[] args) throws ParseException {
    String inDate = "01/10/2020 06:43:21";
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
    Date date = df.parse(inDate);
    long time = date.getTime();

    Timestamp ts = new Timestamp(time);

    System.out.println(ts);
  }
}

Produzione:

2020-01-10 06:43:21.0
Autore: Rupam Yadav
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

Articolo correlato - Java DateTime