Java 中从 java.util.date 转为 java.sql.date
-
使用
getTime()
将java.util.Date
转换为java.sql.Date
-
使用
SimpleDateFormat
和valueOf()
将java.util.Date
转换为java.sql.Date
在本文中,我们将讨论如何使用两个方法 - getTime()
和 valueOf()
,将 java.util.Date
转换为 java.sql.Date
。
java.util.Date
告诉了当前时刻与 1970 年 1 月 1 日 00:00:00 GMT 以来的精确毫秒。java.sql.Date
只以 JDBC 能理解的 SQL 格式告诉日期。SQL 日期只包含年、月、日,没有时间和时区存在。
使用 getTime()
将 java.util.Date
转换为 java.sql.Date
在第一个例子中,我们使用 java.util.Date
类的 getTime()
方法。当调用 getTime()
方法时,返回自 1970 年 1 月 1 日 00:00:00 GMT 以来已经过去的毫秒数。我们首先创建一个 java.util.Date
的对象,并调用 getTime()
方法,以 long
类型返回毫秒数。
接下来,我们创建一个 java.sql.Date
的对象,在构造函数中接受毫秒作为参数。我们传递 timeInMilliSeconds
,我们得到 java.sql.Date
类型的 date1
。
import java.util.Date;
public class UtilDateToSqlDate {
public static void main(String[] args) {
Date date = new Date();
long timeInMilliSeconds = date.getTime();
java.sql.Date date1 = new java.sql.Date(timeInMilliSeconds);
System.out.println("SQL Date: " + date1);
}
}
输出:
SQL Date: 2021-01-22
使用 SimpleDateFormat
和 valueOf()
将 java.util.Date
转换为 java.sql.Date
将 java.util.Date
转换为 java.sql.Date
的另一种方法是 valueOf()
。它是存在于 java.sql.Date
类中的一个静态方法。valueOf()
接受一个字符串类型的参数。这就是为什么我们将 java.util.Date
转换为字符串的原因。
由于 java.util.Date
返回带时间的日期,我们将 java.sql.Date
接受的日期格式化为 yyyy-MM-dd
。为了格式化日期,我们创建一个 SimpleDateFormat
对象,并将格式传递到其构造函数中。我们调用 simpleDateFormat.format(date)
并将 date 作为参数传递给它来格式化日期。
最后,我们得到的日期是一个字符串,我们可以将其作为参数传递给 valueOf()
,并得到结果为 java.sql.Date
。
import java.text.SimpleDateFormat;
import java.util.Date;
public class UtilDateToSqlDate {
public static void main(String[] args) throws IllegalArgumentException {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = simpleDateFormat.format(date);
java.sql.Date date1 = java.sql.Date.valueOf(formattedDate);
System.out.println("SQL Date: " + date1);
}
}
输出:
SQL Date: 2021-01-22
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