String in Zeitstempel konvertieren in Java

  1. Verwenden von TimeStamp.valueOf() zum Konvertieren eines Strings in einen Zeitstempel in Java
  2. Mit Date.getTime() einen String in einen Zeitstempel in Java konvertieren

In diesem Artikel stellen wir zwei Methoden vor, um eine Zeichenkette in Java in einen Zeitstempel zu konvertieren. Ein Zeitstempel wird hauptsächlich in Datenbanken verwendet, um die genaue Zeit eines Ereignisses darzustellen. Die Klasse Timestamp, die wir in diesem Tutorial verwenden werden, ist ein Teil des Pakets java.sql.Timestamp.

Verwenden von TimeStamp.valueOf() zum Konvertieren eines Strings in einen Zeitstempel in Java

Wir werden die eigene statische Funktion der Klasse TimeStamp verwenden - valueOf(). Sie nimmt eine Zeichenkette als Argument und wandelt sie dann in einen Zeitstempel um. Eine wichtige Sache, die es hier zu beachten gilt, ist das Format, in dem das Datum und die Uhrzeit in der Zeichenkette, die wir in einen Zeitstempel umwandeln wollen, geschrieben sind. Es ist auf ein festes Format beschränkt, nämlich yyyy-mm-dd hh:mm:ss.

Wir können das Format nicht ändern und dann das richtige Ergebnis erwarten, aber wenn wir ein falsches Format verwenden, erhalten wir eine IllegalArgumentException in der Ausgabe. Im folgenden Beispiel haben wir 2020-12-12 01:24:23 als Datum und Uhrzeit in der Zeichenkette verwendet, was dem korrekten Format von yyyy-mm-dd hh:mm:ss entspricht.

Wir können nun dateTime als einziges Argument der Methode valueOf(string) übergeben, und sie wird einen String in einen Zeitstempel konvertieren.

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);
    }
}

Ausgabe:

2020-12-12 01:24:23.0

Wir können die Einschränkungen bei der Datums- und Zeitformatierung loswerden, indem wir dieselbe valueOf()-Methode verwenden, aber anstatt einen String direkt an die Methode zu übergeben, werden wir die Klasse LocalDateTime verwenden. Denn valueOf() akzeptiert eine LocalDateTime als Argument.

Im folgenden Code hat dateTime ein Datum und eine Uhrzeit, die dann mit der Methode ofPatter() der Klasse DateTimeFormatter formatiert wird. Wir können diesen Formatierer verwenden, um ein LocalDateTime-Objekt mit der Funktion LocalDateTime.from() zu parsen und zu erhalten.

Sobald wir ein LocalDateTime-Objekt erhalten haben, können wir es an Timestamp.valueOf(localDateTime) übergeben, um die Zeichenkette in einen Zeitstempel zu konvertieren.

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);
    }
}

Ausgabe:

2020-10-01 06:43:21.0

Mit Date.getTime() einen String in einen Zeitstempel in Java konvertieren

Die zweite Methode zur Konvertierung einer Zeichenkette in einen Zeitstempel verwendet mehrere Klassen und Methoden. Genau wie bei LocalDateTime können wir unser Datums- und Zeitformat im String verwenden. Wir verwenden die Klasse SimpleDateFormate(), um die Zeichenkette zu formatieren und sie dann in ein Date-Objekt zu parsen.

Wir brauchen das Date-Objekt, weil es das getTime()-Objekt hat, das das Datum und die Uhrzeit als long zurückgibt. Wir können diesen long-Wert an den Konstruktor von Timestamp übergeben, wie wir es unten getan haben.

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);
    }
}

Ausgabe:

2020-01-10 06:43:21.0

Verwandter Artikel - Java DateTime

  • String in DateTime-Objekt konvertieren in Java