用 Java 將字串轉換為時間戳

Rupam Yadav 2023年1月30日 2020年12月31日
  1. 在 Java 中使用 TimeStamp.valueOf() 把一個字串轉換為時間戳
  2. 在 Java 中使用 Date.getTime() 把一個字串轉換為時間戳
用 Java 將字串轉換為時間戳

在本文中,我們將介紹兩種在 Java 中把字串轉換為時間戳的方法。時間戳在資料庫中主要用於表示某些事件的確切時間。本教程中我們將使用的 Timestamp 類是 java.sql.Timestamp 包的一部分。

在 Java 中使用 TimeStamp.valueOf() 把一個字串轉換為時間戳

我們將使用 TimeStamp 類自己的靜態函式-valueOf()。它接受一個字串作為引數,然後將其轉換為時間戳。這裡要注意的是,要注意我們要轉換為時間戳的字串中的日期和時間的書寫格式。它被限制在一個固定的格式,即 yyyy-mm-dd hh:mm:ss

我們不能改變格式後,仍然期望得到正確的結果,相反,如果我們使用錯誤的格式,我們將在輸出中得到一個 IllegalArgumentException。在下面的例子中,我們使用 2020-12-12 01:24:23 作為字串中的日期和時間,它遵循正確的格式 yyyy-mm-dd hh:mm:ss

現在我們可以將 dateTime 作為 valueOf(string) 方法的唯一引數,它將把字串轉換為時間戳。

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

輸出:

2020-12-12 01:24:23.0

我們可以通過使用同樣的 valueOf() 方法來擺脫日期和時間格式化的限制,但是我們將使用 LocalDateTime 類,而不是直接傳遞一個字串給該方法。因為 valueOf() 接受一個 LocalDateTime 作為引數。

在下面的程式碼中,dateTime 有一個日期和時間,然後使用 DateTimeFormatter 類的 ofPatter() 方法進行格式化。我們可以使用這個格式化器來解析並使用 LocalDateTime.from() 函式獲得 LocalDateTime 物件。

一旦我們得到一個 LocalDateTime 物件,我們就可以把它傳遞給 Timestamp.valueOf(localDateTime),把字串轉換為時間戳。

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

輸出:

2020-10-01 06:43:21.0

在 Java 中使用 Date.getTime() 把一個字串轉換為時間戳

第二個將字串轉換為時間戳的方法使用了多個類和方法。就像 LocalDateTime 一樣,我們可以在字串中使用我們的日期和時間格式。我們使用 SimpleDateFormate() 類來格式化字串,然後將其解析為 Date 物件。

我們需要 Date 物件,因為它有 getTime() 物件,它將日期和時間返回為 long。我們可以將這個 long 值傳遞給 Timestamp 的建構函式,就像我們在下面做的那樣。

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

輸出:

2020-01-10 06:43:21.0
Author: 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

相關文章 - Java DateTime