用 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
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