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