如何在 Java 中将字符串日期转换为时间戳
原文:https://www.studytonight.com/java-examples/how-to-convert-string-date-to-timestamp-in-java
在本教程中,我们将学习如何在 Java 中将字符串日期转换为时间戳。当我们想要处理时间戳时,这种转换非常重要。例如,一个人可能想知道哪个日期比另一个日期小,或者我们可能想计算自特定日期以来的天数,而字符串日期是不可能的。在本教程中,我们将使用 Java 的SimpleDateFormat
、Timestamp
和Date
类。
将字符串日期转换为时间戳的示例
下面给出的代码非常适合将字符串日期转换为时间戳。首先,我们将使用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()方法。这在对实际时间戳而不是不同格式的日期执行操作时非常有用。