java.util.Date与java.sql.Date的关系和转换方法

Java.sql.Date:深入探索Java日期处理的重要工具 我们了解了java.sql.Date的基本概念和创建方法,介绍了一些常用的方法来处理日期,并展示了在数据库操作中使用java.sql.Date的数据库操作中使用java.sql.Date的示例代码。与java.util.Date类不同,java.sql.Date类不包含时间(小时、分钟、秒)的信息。上述代码将通过java.sql.Date对象的getYear()、getMonth()和getDate()方法获取日期的年、月、日信息,并将其存储在相应的变量中。创建java.sql.Date对象。 阅读详情

在ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。

因此在DAO层我们经常会碰到这俩种数据类型的相互转换。
两者的关系
java.lang.Object
|
+---java.util.Date
|
+----java.sql.Date 
从这个图中我们可以知道java.sql.Date是从java.util.Date继承过来的。

相互转换
1. 使用getTime()函数
这两个类都提供了getTime()函数,用于返回对应的毫秒数(long类型)。利用这个函数可以实现转换:
java.util.Date utilDate = new java.util.Date(sqlDate.getTime()); // sql -> util
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); // util -> sql

2. 使用SimpleDateFormat类实现转换
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat dateFormat = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");
java.util.Date utilDate = dateFormat.parse(sqlDate.toString());

3. 直接转换
由于java.sql.Date是从java.util.Date中继承过来的,所以可以直接用:
utilDate = sqlDate;

4. 另类获得日期的方法:
SimpleDateFormat sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);

ps: java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1

 

java.util.Date和java.sql.Date的区别

在除了SQL语句的情况下面使用java.sql.Date,它是针对SQL语句使用的,它只包含日期而没有时间部分。
它都有getTime方法返回毫秒数,自然就可以直接构建
java.util.Date d = new java.util.Date(sqlDate.getTime());


java.util.Date 是 java.sql.Date 的父类(注意拼写)
前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他
后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date 
转换是
java.util.Date d=new java.util.Date (sqldate.getTime());
反过来是一样的

 

java.util.Date和java.sql.Date的异同
       java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。

       但是为什么java.sql.Date类型的值插入到数据库中Date字段中会发生数据截取呢?

       java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。当我们调用ResultSet的getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。

       在sun提供的ResultSet.java中这样对getDate进行注释的:
       Retrieves the of the designated column in the current row of this <code>ResultSet</code> object as a “java.sql.Date” object in the Java programming language.

        同理。如果我们把一个java.sql.Date值通过PrepareStatement的setDate方法存入数据库时,java程序会对传入的java.sql.Date规范化,非规范化的部分将会被劫取。然而,我们java.sql.Date一般由java.util.Date转换过来,如:java.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()).
显然,这样转换过来的java.sql.Date往往不是一个规范的java.sql.Date.要保存java.util.Date的精确值,我们需要利用java.sql.Timestamp.

java.sql.Time sTime=new java.sql.Time(utilDate.getTime());

java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());

 

另外,插入数据库时的时间类型:


datetime。对应于java中的Timestamp。内包含日期和时间。用new Timestamp(System.currentTimeMillis())来得到;

从实习生到独立上手:我是如何用海思PQTool搞定IPC图像调试的 本文分享了从实习生到独立使用海思PQTool进行IPC图像调试的成长历程。通过工具搭建、核心参数调整和实战案例,详细介绍了如何高效解决图像质量问题,特别强调了ISP调试中的关键参数和实用技巧,适合刚入门的图像调试工程师参考。 阅读详情

相关推荐

非华为电脑也能用!华为电脑管家完美安装教程来了

GitHub 上有一个开源项目 ​****​,专门解决“非华为设备无法安装华为电脑管家”的问题。它通过智能模拟 + DLL 劫持技术,绕过官方对硬件型号的检测,让你在联想、戴尔、华硕甚至 DIY 主机上也能流畅使用华为电脑管家!⭐ 项目已获 ​700+ Stars​,社区活跃,持续更新,兼容性优秀!科技不该有围墙。如果你成功在非华为电脑上跑起了 PCManager,欢迎在评论区晒出你的设备型号 + 使用体验!也别忘了把这篇推文分享给同样“眼馋”华为生态的朋友 ~📱 ​关注我们。

程序员朱永胜 4931

java sql 日期_java.sql.Date

java.sql.Date1 java.sql.Date介绍java.sql.Date类仅表示java中的日期。它继承了java.util.Date类。java.sql.Date实例在JDBC中被广泛使用,因为它表示可以存储在数据库中的日期。不推荐使用java.sql.Date类的某些构造方法和普通方法。在这里,我们没有列出任何不推荐使用的构造方法和普通方法。2java.sql.Date的构造方...

weixin_42306812的博客 6187

超越数据手册:深入Zynq XADC的DRP接口与PL端自定义采样逻辑

本文深入探讨Zynq-7000系列XADC模块的DRP接口机制与PL端自定义采样逻辑实现。通过硬件级多通道轮询、触发采样和实时校准技术,突破传统软件驱动限制,为高精度电压测量和通讯应用提供极致灵活性和响应速度。

xxx12的博客 770

java.sql.Date – Java SQL日期

Java SQL Date class is part of java.sql package. java.sql.Date is a sub class of java.util.Date class. Java SQL Date类是java.sql包的一部分。 java.sql.Date是java.util.Date类的子类。 Java SQL日期 (Java SQL Date) Java...

从零开始的教程世界 6215

手把手教你构建轻量级CLIP模型:从理论到实践

本文手把手教你从零构建一个轻量级CLIP模型,深入解析其核心原理——对比学习,并提供完整的代码实践。通过精简的模型架构、数据准备和训练循环实现,帮助读者彻底理解多模态模型如何让图像与文本在共享空间中对齐,为学习更复杂的AI模型打下坚实基础。

weixin_29100927的博客 326

网页内容抓取的艺术:使用R语言解析动态网页

本文探讨了使用R语言处理动态网页数据的方法。针对AJAX加载的学术网站,传统的静态抓取和RSelenium方法存在会话终止、浏览器错误等问题。通过分析发现内容通过admin-ajax.php加载,提出使用httr2模拟POST请求获取数据,配合rvest解析HTML内容。该方法避免了浏览器自动化的弊端,实现了高效稳定的动态内容提取,为处理类似AJAX网站提供了通用解决方案。

m0_74337424的博客 54

API--02--Java.util.date与java.sql.date

JDK8 之前日期时间 API System类 currentTimeMillis(); 时间戳 返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。 称为时间戳 java.util.Date类 两个构造器的使用 构造器一:Date():创建一个对应当前时间的Date对象 构造器二:创建指定毫秒数的Date对象 两个方法的使用 toString():显示当前的年、月、日、时、分、秒 getTime():获取当前Date对象对应的毫秒数。(时间戳) 案例: @Test

时光里的博客 2018

Python 爬虫实战:抓取悦动圈跑步爱好者运动轨迹数据,规划健身路线

通过本次 Python 爬虫实战,我们学习了如何使用 Python 抓取悦动圈跑步爱好者的运动轨迹数据,并基于这些数据进行分析和处理,最终规划出健身路线。在这个过程中,我们掌握了requests、BeautifulSoup、pandas和matplotlib等库的基本使用方法,了解了爬虫的基本原理和流程。希望本文能够帮助你更好地理解和应用 Python 爬虫技术,在数据处理和分析领域取得更多的成果。

u014481728的博客 2367

类和对象作业及答案

类和对象作业 一、填空题 1.类是组成Java程序的基本要素,类体有两部分构成:一部分是变量的定义,另一部分是 的定义。 2.执行Person p = new Person();语句后,将在_________中给Person对象分配空间,并在栈内存中给引用变量p分配空间,存放Person对象的引用。 3. 是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不书写...

qq_42591018的博客 5954

小工匠聊架构-分布式场景下的并发幂等性常见的解决方案

Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.

小工匠 2万+

Python爬虫实战:全方位解析前程无忧(51job)职位详情爬取及反爬破解

平台规模:覆盖全国各行业、数百万条岗位信息。数据特点:职位描述详细,职位标签丰富。数据价值:支持招聘趋势分析、职业发展研究、薪资行情调研。推荐Python 3.10+,支持最新async特性与库兼容。

2201_76125261的博客 1487

java.util.Date与java.sql.Date的关系和转换方法(转)

在ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。 因此在DAO层我们经常会碰到这俩种数据类型的相互转换。 两者的关系java.lang.Object|+---java.util.Date|+----java.sql.Date从这个图中我们可以知道java.sq...

weixin_30588907的博客 98

【nerfStudio】1-在windows上安装nerfStudio

安装Git。安装Visual Studio 2022。在安装CUDA之前必须完成此步骤。必须在“桌面开发与C++”工作流程(在BuildTools版本中称为“C++构建工具”)中包含所需的组件。Nerfstudio要求。我们建议使用conda来管理依赖关系。在继续之前,请确保安装了Conda。 依赖关系 PyTorch 请注意,如果安装了低于2.0.1的PyTorch版本,则应卸载先前版本的pytorch、functorch和tiny-cuda-nn。 基于CUDA 11.8的Torch 2.0.1 安装基

dlhlSC的博客 1692

java.util.Date和java.sql.Date的区别及应用

java.util.Date和java.sql.Date的区别及应用 java.util.Date 就是在除了SQL语句的情况下面使用 java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分 它都有getTime方法返回毫秒数,自然就可以直接构建 java.util.Date d = new java.util.Date(sqlDate.getTim

tgxblue的专栏 564

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

记录一下java.util.Date和java.sql.Date的区别和相互转化

共同点:都有getTime方法返回毫秒数,可以直接构建 不同点: 1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用, 而PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date 2、java.util.Date是在除了SQL语句的情况下面使用,一般是日...

K_kzj_K的博客 150

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java.sql.date获取当前时间_java.util.Date与java.sql.Date

java.util.date与java.sql.datejava.util.date是java.sql.date的父类,其中java.util.date用于除了数据库以外的任何地方。两者都有getTime的方法(获取long类型)。所以可以互相转换java.sql.date date_sql = new java.sql.date(System.currentTime());java.util.d...

weixin_28952471的博客 2382

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java.sql.Date和java.util.Date的联系和区别

java.sql.Date和java.util.Date的联系和区别 – 共同点:它都有getTime方法返回毫秒数,可以直接构建 – 不同点:1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date – java...

weixin_43274680的博客 578

java.util.date java.sql.date java.sql.timestamp[轉]

java.util.date java.sql.date java.sql.timestamp[轉] http://hi.baidu.com/zhangyx/blog/item/5fdf0a4f1b9f573caec3ab52.html  整理一: 这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有困惑的请看。 java.sql.Date 只存储日期数据不存

hahahaha7551的专栏 531

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系

参考:链接 在Web开发中,避免不了对日期的操作,常用的关于时间的类有这么几个: java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp,这几个类在JDK的定义如下所示: java.lang.Object ….|__java.util.Date ……….|__java.sql.Date/java.sql.Timesta

gg_gogoing的专栏 998

java.util.Date和java.sql.Date的区别及联系

java.util.Date 就是在除了SQL语句的情况下面使用 java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分 它都有getTime方法返回毫秒数,自然就可以直接构建。 java.util.Date 是 java.sql.Date 的父类(注意拼写) 前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他 后者之后在读写数据库的时候用他...

学会坚强 160

java.util.Date类型与java.sql.Date类型的互转

很多的时候在进行数据库操作时,如插入。都需要进行java.util.Date类型与java.sql.Date类型的互转。从类的继承关系上看,java.util.Date类是java.sql.Date类的super类。所以java.sql.Date可以当作java.util.Date来使用,只是JDK docs上强调最好理解为这两个类之间没有什么继承关系。 至于两者之间的转换,有一个很简单的方法

yzhjisji的专栏 4359

java.sql.date和java.util.date的区别

共同点: 都有getTime方法返回毫秒数,可以直接构建 不同点: 1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date 2、java.util.Date是在除了SQL语句的情况下面使用,一般是日常日期字段(2...

XSL_xuxuan的博客 358
上一篇: java.sql.Timestamp的格式String转换
下一篇: Android的XMPP协议的smack开源框架
NS_XK
博客等级 码龄17年 1粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值