如何在 Java 中将字符串日期转换为时间戳

原文:https://www.studytonight.com/java-examples/how-to-convert-string-date-to-timestamp-in-java

在本教程中,我们将学习如何在 Java 中将字符串日期转换为时间戳。当我们想要处理时间戳时,这种转换非常重要。例如,一个人可能想知道哪个日期比另一个日期小,或者我们可能想计算自特定日期以来的天数,而字符串日期是不可能的。在本教程中,我们将使用 Java 的SimpleDateFormatTimestampDate 类。

将字符串日期转换为时间戳的示例

下面给出的代码非常适合将字符串日期转换为时间戳。首先,我们将使用SimpleDateFormat.parse()方法将一个简单的字符串转换为日期,然后确保时间戳以正确的格式给出。

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

public class StudyTonight 
{ 
    public static void main(String[] args) throws Exception 
    { 
        //date in string format
        String stringDate = "2021-01-07 02:02:16.172";
        try
        {
            //creating date format
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
            //parsing string to date using parse() method
            Date parsedDate = dateFormat.parse(stringDate);
            //finally creating a timestamp
            Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
            System.out.println(timestamp.getClass());
        }
        catch(Exception e)
        {   
            System.out.println(e);
        }
    } 
}

2021-01-07 02:02:16.172

如果字符串的格式不正确,您将得到一个异常错误:java.text.ParseException: Unparseable date:

使用 valueOf()方法将字符串日期转换为时间戳

这是使用java.sql.Timestamp类的valueOf()方法将日期字符串转换为时间戳的另一种方式。这是一个简单的方法,不需要做额外的编码。

例 2

在这个程序中,我们不需要考虑日期的格式,因为valueOf()方法会直接将字符串转换为时间戳本身。与最后一个代码不同,如果字符串格式不正确,它将抛出异常java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff].

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

public class StudyTonight 
{ 
    public static void main(String[] args) throws Exception 
    { 
        //date in string format
        String stringDate = "2021-01-07 02:02:16.172";
        try
        {
            //converting string date to timestamp using valueOf() method
            java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf( stringDate );

            System.out.println(timestamp);
        }
        catch(Exception e)
        {   
            System.out.println(e);
        }
    } 
}

2021-01-07 02:02:16.172

结论:

要将字符串日期转换为时间戳,我们有两种方法,即使用时间戳作为构造器,另一种是使用时间戳类的 valueOf()方法。这在对实际时间戳而不是不同格式的日期执行操作时非常有用。