首页 > 数据库 >java中java.util.Date和java.sql.Date之间的转换

java中java.util.Date和java.sql.Date之间的转换

时间:2023-06-22 19:11:44浏览次数:39  
标签:utilDate java sqlDate util sql Date

1、util.Date和sql.Date之间的关系

我们来看下java.sql.Date的源码

package java.sql;

import java.time.Instant;
import java.time.LocalDate;


public class Date extends java.util.Date {}

从以上源码可以看出,sql.Date是util.Date的子类

2、util.Date的构造方法

以下是java.util.Date的方法部分方法图示:

img

可以看到,主要有两个构造方法推荐使用,添加了img标记的表示这些方法已经被废弃,不推荐使用。

所以对于,java.util.Date 常用的构造方法有:

Date()

Date(long) 方法参数为一个长整型的毫秒值

其中,java.util.Date中还有一个重要的方法:就是获取当前时间的毫秒值

public class Date
    implements java.io.Serializable, Cloneable, Comparable<Date>
{
/**
     * Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
     * represented by this <tt>Date</tt> object.
     *
     * @return  the number of milliseconds since January 1, 1970, 00:00:00 GMT
     *          represented by this date.
     */
    public long getTime() {
        return getTimeImpl();
    }
}

从以上源码可以看到,该方法是public的,所以,它的子类sql.Date也是可以继承该方法的。

3、sql.Date的构造方法

以下是java.sql.Date的方法部分方法图示:

img

可以看到,sql.Date主要有一个构造方法:Date(long)

4、util.Date和sql.Date之间的转换

// 1) 创建java.util.Date的对象

java.util.Date utilDate?= new java.util.Date();



// 2)将java.util.Date转成java.sql.Date

long datems? = utilDate.getTime();

java.sql.Date? sqlDate = new java.sql.Date(datems);



// 3)将 java.sql.Date 转成 java.util.Date

long datems2 = sqlDate.getTime();

java.util.Date? utilDate = new java.util.Date(datems2);

看下面只要是为了看一下运行效果

原文链接:https://blog.csdn.net/engerla/article/details/81298645 感谢!!!

Java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间或构造时间,另一个是java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。两个类型的时间可以相互转化。

util.Date转sql.Date
代码:

        Date utilDate = new Date();//util.Date
        System.out.println("utilDate : " + utilDate);
        //util.Date转sql.Date
        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
        System.out.println("sqlDate : " + sqlDate);12345

运行结果:
这里写图片描述
从运行结果看到util.date转成sql.date之后,只有年月日,没有时分秒。下面给大家看点东西就知道为什么会这样了

java.sql包下给出三个与数据库相关的日期时间类型:
    Date:表示日期,只有年月日,没有时分秒。会丢失时间;
    Time:表示时间,只有时分秒,没有年月日。会丢失日期;
    Timestamp:表示时间戳,有年月日时分秒,以及毫秒。

代码

        Date utilDate = new Date();//util utilDate
        System.out.println("utilDate : " + utilDate);
        Timestamp sqlDate = new Timestamp(utilDate.getTime());//uilt date转sql date
        System.out.println("sqlDate : " + sqlDate);1234

运行结果:
这里写图片描述
这样就有时分秒了

sql.Date转util.Date
触类旁通,就直接上代码了
代码

        System.out.println("*********util.Date转sql.Date*********");
        Date utilDate = new Date();//util.Date
        System.out.println("utilDate : " + utilDate);
        Timestamp sqlDate = new Timestamp(utilDate.getTime());//util.Date转sql.Date
        System.out.println("sqlDate : " + sqlDate);

        System.out.println("*********sql.Date转util.Date*********");
        System.out.println("sqlDate : " + sqlDate);
        Date date = new Date(sqlDate.getTime());//sql.Date转util.Date
        /*
        java.util.Date date = new java.util.Date(sqlDate.getTime());
         */
        System.out.println("utilDate : " + date);12345678910111213

运行结果:
这里写图片描述
同时util.Date和sql.Date都可以用SimpleDateFormat格式化
代码

        Date utilDate = new Date();//uilt.Date
        System.out.println("utilDate : " + utilDate);

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("format : " + format.format(utilDate));

        System.out.println("**********************************************");

        Timestamp sqlDate = new Timestamp(utilDate.getTime());//uilt.Date转sql.Date
        System.out.println("sqlDate : " + sqlDate);
        System.out.println("format : " + format.format(sqlDate));

运行结果:
这里写图片描述

标签:utilDate,java,sqlDate,util,sql,Date
From: https://www.cnblogs.com/javaxubo/p/17498174.html

相关文章

  • postgresql日期相关函数
    感谢原博文:https://blog.csdn.net/lixinkuan328/article/details/107969398一、Postgresql中string转换成timestamp类型Mybatis+PostgresqlTO_DATE(#{startTime},'YYYY-MM-DD')ANDop_date<![CDATA[>=]]>TO_TIMESTAMP(#{beginTime},'YYYY-MM-DDH......
  • MySQL给查询出的数据增加序号
    前言我们都知道,在Oracle中,可以使用ROW_NUMBER()OVER()函数给查询的结果加序号。不了解请点击:ROW_NUMBER()OVER()MySQL几乎模拟了Oracle,SQLServer等商业数据库的大部分功能,函数。MySQL8.0版本以后才会有这个函数,之前版本是没有的MySQL给查出的数据加序号的方法一种......
  • MySQL处理字符串的两个绝招:substring_index,concat
    1、substring_index(str,delim,count)str:要处理的字符串delim:分隔符***count:计数***例子:str=www.google.comsubstring_index(str,'.',1)结果是:wwwsubstring_index(str,'.',2)结果是:www.google也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容......
  • PostgreSQL被除数为0的处理方法
    PostgreSQL被除数为0的处理方法方法一:使用case语法selectcasewhenid=0then0elseid/2endfromc2;方法二:自定义操作符CREATEORREPLACEFUNCTIONDIV_ZERO(NUMERIC,NUMERIC) RETURNSNUMERICAS$BODY$ SELECTCASEWHEN$2=0THEN0ELSE$1/$2END; $BODY$ L......
  • APScheduler+MySQL实现定时任务及其持久化存储
    APScheduler+MySQL实现定时任务及其持久化存储转自:APScheduler+MySQL实现定时任务及其持久化存储-简书(jianshu.com)最近,想要实现一个功能,就是添加定时任务的同时记录其任务信息到数据库中,可以通过接口查看设定了哪些定时任务,经过调研,发现大家公认的Python最好用的定时任务框......
  • JavaScript类
    1JavaScript类每个JavaScript对象都是一个属性集合,相互之间没有任何联系在JavaScript中也可以定义对象的类让每个对象都共享某些属性,这种“共享”的特性是非常有用的类的成员或实例都包含一些属性,用以存放或定义它们的状态其中有些属性定义了它们的行为(通常称为方法)。这......
  • mysql允许其他电脑访问,授权mysql允许其他电脑访问
    1关闭windows防火墙,或者添加入站规则允许mysql的端口(默认3306)2授权mysql允许其他电脑访问mysql-uroot-pusemysql;selecthost,userfromuser;updateusersethost='%'whereuser='root';flushprivileges;https://blog.csdn.net/liu53782/article/de......
  • Mysql数据库简介
    由于之前文章已经初步了解过数据库的概念此处就不过多赘述了,直接进入本次主题,此次要介绍的是Mysql数据库,与之前介绍的Oracle数据库相比属于中型数据库,远远小于Oracle的容量体积(从软件的安装包大小就可看出),一个只要几百MB,一个却要好几个G。虽然安全性不如Oracle好,但Mysql相比Oracle......
  • 56基于java的房屋租赁系统设计与实现
    本章节给大家带来一个基于java房屋租赁系统设计与实现,可适用于java租房网站java房子租用,房屋租用,租房网站,租房管理系统,房屋预约系统,预约看房,房屋资讯,在线房屋信息管理系统等。引言经过调查,目前现代人的生活节奏加快,生活压力也在逐渐的增加,网络的发展给人们带来的便利,随着网上......
  • java泛型
    泛型原理什么是泛型&为什么引入泛型publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.add(521);//添加Integer类型元素list.add("wan");//添加String类型元素list.add(true);//添加Boolean类型元素......