String in Zeitstempel konvertieren in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden von TimeStamp.valueOf() zum Konvertieren einer Zeichenkette in einen Zeitstempel in Java
  2. Mit Date.getTime() einen String in einen Zeitstempel in Java konvertieren
  3. Konvertieren von String-Datum in Zeitstempel mit dem Zeitstempel-Konstruktor in Java
  4. Datums-String in Zeitstempel mit LocalDate in Java konvertieren
  5. Konvertieren von String-Datum in Timestamp mit der atStartOfDay() Methode in Java
String in Zeitstempel konvertieren in Java

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 einer Zeichenkette 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

Konvertieren von String-Datum in Zeitstempel mit dem Zeitstempel-Konstruktor in Java

Hier verwenden wir den Timestamp-Konstruktor, um ein Timestamp-Objekt zu erhalten. Zuerst verwenden wir die Klasse SimpleDateFormat, um das Format von Datum festzulegen und dann das Datumsobjekt mit der Methode parser() zu erhalten, dann verwenden wir die Methode geteTime(), um Zeit mit dem Datum zu addieren und als Ergebnis einen Zeitstempel zu erhalten. Siehe das Beispiel unten.

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

Ausgabe:

 1990-10-12 00:00:00.0

Datums-String in Zeitstempel mit LocalDate in Java konvertieren

In Java 8 fügt es ein neues Paket java.time hinzu, das mehrere Klassen zur Behandlung von Datum und Zeit enthält. Hier verwenden wir die LocalDate-Klasse dieses Pakets. Wir verwenden die Methode parse() der Klasse LocalDate, um das Objekt LocalDate aus der Datumszeichenkette zu erhalten, und dann die Methode atTime(), um das Objekt LocalDateTime zu erhalten, das ein Datum mit Uhrzeit zurückgibt. Die Methode now() wird benutzt, um die aktuelle Zeit des Systems zu erhalten.

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

Ausgabe:

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

Konvertieren von String-Datum in Timestamp mit der atStartOfDay() Methode in Java

Die Methode atStartOfDay() in der Klasse LocalDate wird auch verwendet, um das Objekt LocalDateTime zu erhalten. Diese Methode fügt die Zeit zum Datum am Anfang des Tages hinzu und gibt statt eines einfachen Datums eine Datumszeit zurück. Siehe das Beispiel unten.

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

Ausgabe:

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

Verwandter Artikel - Java DateTime