Java 中从 java.util.date 转为 java.sql.date

Rupam Yadav 2023年1月30日 2021年2月7日
  1. 使用 getTime()java.util.Date 转换为 java.sql.Date
  2. 使用 SimpleDateFormatvalueOf()java.util.Date 转换为 java.sql.Date
Java 中从 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

使用 SimpleDateFormatvalueOf()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
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

相关文章 - Java DateTime