java.sql.date 和 java.util.date

整理一:
这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有困惑的请看。
java.sql.Date 只存储日期数据不存储时间数据
// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//可以这样来处理
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));

//想要得到完整的数据,包括日期和时间,可以这样
java.util.Date d = resultSet.getTimestamp(1);
//这样处理更合适一些,可以避免一些潜在Timestamp 问题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
自己补的话
这样的话:
往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中。
从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个 java.util.Date对象,这样就可以对这个Date对象操作了。不如说 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等

整理二:
用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式。
Timestamp转化为String: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒 Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间 String str = df.format(now); String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(new Date()); Timestamp ts = Timestamp.valueOf(time); 整理三: 在 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 date timestamp sql 时间日期
【项目实战】Java如何获取当前时间Timestamp 在Java中,可以使用java.time.Instant类来获取当前时间的时间戳。在Java中,你可以使用java.sql.Timestamp类来获取当前时间。在Java中,你可以使用java.sql.Timestamp类来获取当前时间的Timestamp对象注意:java.sql.Timestamp 是Java的内置类,它提供了许多用于处理日期和时间的功能。 阅读详情

相关推荐

故障诊断知识库建设指南

从数据融合到知识图谱构建,从智能推理引擎开发到动态进化机制落地,故障诊断知识库的建设路径已形成 “数据 - 知识 - 智能” 的闭环体系。随着大模型技术的深度融入,知识库将实现从 “规则驱动” 到 “认知推理” 的跨越 —— 通过自然语言理解解析复杂故障描述、多模态分析融合图像与信号数据、预测性算法推演故障发展趋势,持续提升诊断的精准度与前瞻性。

极昆仑智慧 1230

MySQL 自动获取当前时间,且 timestamp 类型与 datetime 类型的区别

MySQL 自动获取当前时间,且 timestamp 类型与 datetime 类型的区别

wgchen 1636

现控报告-- 分析倒立摆系统稳定性、能控性及能观性分析,设计PID控制方案(附matlab)

建立直线一级倒立摆系统的动力学模型,推导该系统的运动方程,求出直线一级倒立摆系统传递函数模型及空间状态方程模型。接着描述了PID控制系统设计原理及PID控制器各校正环节的作用,简要叙述了参数的整定方法。设计了直线一级倒立摆摆杆摆角及小车位置常规单回路控制器,通过Simulink仿真知道常规单回路控制器能控制摆杆摆角,不能控制小车位置。于是设计出了直线一级倒立摆双闭环控制器及基于倒立摆系统的状态空间方程控制器,利用软件进行仿真,仿真结果表明,常规双闭环控制方案和基于状态空间方程加控制方案均能对摆杆摆角及小车位

mengshenglo的博客 4万+

java获取Timestamp类型的当前系统时间

整理三: 在 ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个 java.util.Date对象,这样就可以对这个Date对象操作了。这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有困惑的请看。

wkywky123的博客 2086

具身智能的边缘计算核心构成方案

摘要: 具身智能(Embodied Intelligence)依赖物理实体与环境交互,而边缘计算(Edge Computing)通过本地化数据处理降低延迟、提升实时性。两者结合的核心方案包含五层架构:传感器层采集环境数据,边缘处理单元执行本地计算,通信模块实现低延迟传输,决策引擎运行轻量AI模型,执行器接口转化动作为物理操作。该方案以“边缘优先”为原则,满足毫秒级响应(如延迟<50ms),同时优化能效(功耗降低30%)和隐私保护。适用于机器人、自动驾驶等场景,通过分层闭环设计确保在资源受限环境中的可靠

老郑的博客 809

LightningChart使用教程:创建 JS 散点图

这是对 LightningChart JS XY 图表一些有趣功能的快速技术研究,以及如何使用 LightningChart JS 创建嵌入式散点聊天和添加自定义交互。 此图表将可视化一个 XY 坐标列表以及一个额外的自定义属性,它只是一段文本。这些自定义属性将与 UI 文本元素一起显示,这些元素将与用户的鼠标移动交互。 我们将介绍的突出功能是: 什么是散点图? 如何创建散点图? 如何将自定义属性附加到数据点。 如何创建交互式 UI 文本元素。 最终结果 什么是散点图? 散点图或散点图是..

Augenstern__zyx的博客 1368

java 获取当前timestamp_java 怎么得到timestamp的类型的当前时间

展开全部在java当中要获得timestamp的类32313133353236313431303231363533e59b9ee7ad9431333365646262型的当前时间,需要按照不同的java类型进行正确的编码,掌握相关的技巧来整理系统时间数据,并及时修补漏洞即可解决该问题,具体的操作方法可以吃参考下面的内容。1、首先要明确java的类型分类,注意分析java中Date及Timestam...

weixin_34481252的博客 5799

VMware VSAN 高级参数介绍(测试用)

VSAN 的策略驱动让我们看到了VSAN无穷的潜力,其设计思路相当新颖,在一个基础资源池上使用策略就能实现不同对象的区分服务,而目前没有其他厂家能到VMware这样的高度。 VSAN 呈现给用户配置很简单,但实际上设计及后台比较复杂。笔者无意间发现了VSAN的隐藏高级参数设置,有很多好玩的选项想分享出来。这些参数全部是针对每主机进行设置的。VSAN 中有很多默认设置,这些设置应该都是研发人员多次测试得出的最优值,修改可能导致环境异常,并不建议修改! 目录 参数1:全闪配置下 SSD 写缓存最大.

山水牧羊 2030

MySQL获取当前日期、时间、时间戳函数

mysql时间函数

wangshiqi666的博客 2万+

AI驱动的iOS逆向工程自动化:14阶段工作流与Ghidra集成实践

逆向工程是软件安全分析的核心技术,通过反汇编、调试等手段解析程序内部逻辑与数据流。其原理在于将编译后的二进制代码还原为可理解的逻辑结构,从而发现潜在漏洞或理解软件行为。在移动安全领域,iOS逆向工程具有重要技术价值,能够用于安全审计、漏洞挖掘与恶意软件分析。传统iOS逆向依赖ipsw、class-dump、Frida等工具链组合,存在学习曲线陡峭与流程碎片化问题。本文介绍的ios-reverse-skills项目创新性地将14阶段逆向工程方法论封装为AI可调用的标准化脚本集,通过Ghidra脚本实现Swif

weixin_27268733的博客 430

CH7034B显示模块原理图设计,已量产

显示桥接板的价值,不在于简单把 RGB 排线换成另一种接口,而在于能否把并行视频、时钟、显示控制、模拟输出和辅助配置同时组织成稳定系统。当前这张 CH7034B 原理图就是这种思路:U3 CH7034B 作为核心桥接芯片,输入侧是 LCD_R0~R7、LCD_G0~G7、LCD_B0~B7、LCD_DE、LCD_HSYNC、LCD_VSYNC、LCD_CLK 与 LCD_BL,输出侧则通过 DAC0~DAC2 和 DDC_SC/DDC_SD 形成模拟显示接口边界。

不脱发的程序猿 161

java.sql.Date和java.util.Date区别及使用

在项目中使用碰到的问题,主要是两者日期格式和转换的问题   首先,查看api,java.sql.Date是java.util.Date的子类   可见这三个类都是java.utl.Date的子类。 而这三个类都是对应与jdbc处理日期格式的类,有着 不同的日期精度和格式,更加详细内容参考jdk就好 详细查看java.sql.Date类:   一个包装了毫秒值的瘦包装器 (thi...

tiansheng1225的博客 8483

华为OD机试2025C卷-双十一最大花费金额[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

双十一最大花费金额 - 动态规划解法 摘要:本文介绍了华为OD机试中"双十一最大花费金额"问题的动态规划解法。该问题要求在给定N件商品价格和优惠券面额X的情况下,选择若干商品使总花费不超过X且尽可能大。核心解法采用布尔型动态规划数组,记录每个金额是否可被拼出。算法时间复杂度为O(N*X),空间复杂度为O(X)。通过倒序遍历避免重复选择同一商品,最后从X向下查找第一个可达金额作为答案。文中提供了C++和Java的实现代码,并解释了与经典0-1背包问题的关系。 关键点: 问题本质是0-1背包/子集和问题的变体

2503_91057718的博客 46

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

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

weixin_39732506的博客 89

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何将java.util.Date转换为java.sql.Date?

我试图使用java.util.Date作为输入,然后用它创建一个查询-所以我需要一个java.sql.Date 。 我很惊讶地发现它不能隐式或显式地进行转换-但我什至不知道该怎么做,因为Ja

asdfgh0077的博客 3351

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java的java.sql.Date和java.util.Date的区别,应该怎么使用

根本区别是日期+时间,是仅日期(是前者的子类)。核心用途专为与数据库DATE类型交互而设计。正确使用:在JDBC中,用和来操作。转换方法:通过getTime()方法获得的毫秒数在两者间安全转换。现代实践优先使用java.timeAPI(如LocalDate,它更安全、更清晰、功能更强大。只有在必须与旧API交互时,才考虑使用旧的日期类。

zwh1zwh的博客 1032

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

ASO的博客 146

Java.util.Date和Java.sql.Date

Java.util.Date和Java.sql.Date Java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间或构造时间,另一个是java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。两个类型的时间可以相互转化 Java.sql.Date 构造方法 Date(long date) 使用给定毫秒时间值构造一个 Date 对象。 方法 void setTime(long date) 使用给定毫秒时间值设置现有 Date 对象。 String toStr

weixin_43421142的博客 2584

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

Java中Date的两个类: java.util.Date : 通常情况下用它获取当前时间或构造时间 java.sql.Date : 是针对SQL语句使用的,它只包含日期而没有时间部分 区别: 共同点: 都有getTime方法返回毫秒数,可以直接构建 不同的点: 1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.

随笔记 4539

Java中util.Date和sql.Date的相互转换

Java中Date的两个类 java.util.Date通常情况下用它获取当前时间或构造时间 java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分 它们都有getTime方法返回毫秒数,都可以直接构造代码示例:// util.date转换成sql.date java.util.Date utilDate = new java.util.Date(); //获取当前时间 Sys

MyBlog 1万+

java.sql.Date与java.util.Date相互转换

数据库操作时,遇到时间类型,经常会涉及到 java.sql.Date与java.util.Date 之间的转换。 在此,总结一个简单的转换方法。 java.sql.Date与java.util.Date 两种Date类型有个共同的方法,就是getTime()。 利用getTime进行格式的转换时,时间不会有精度的丢失。 public class DateTest { public s

蜗牛学习笔记 2710

java.util.Date和java.sql.Date的比较

java.util.Date和java.sql.Date的比较 java.sql.Date 继承自 java.util.Date java.sql.Date对应于 SQL 中的日期,时间部分置零 A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL DATE value. A...

Lee_01的博客 483

java.sql.date 与java.util.date

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

303

java.sql.Date和java.util.Date

一、两者间的关系 java.sql.Date是java.util.Date的子类 二、两者关于时间显示的区别 long date=1603526787918L; //java.util.Date Date date1 = new Date(date); //java.sql.Date java.sql.Date date2 = new java.sql.Date(date); System.out.println(dat

Mango_yoo的博客 1163

import 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.getTime());...------------------------------------------...

weixin_35679869的博客 763

java util date 转换 sql date,错误转换Java.Util.Date到Java.Sql.Date

I found error on my function, it shows error result after initializing the newInstance() method from DatatypeFactory df , I'm getting another error:java.lang.ClassCastException: java.util.Date cannot ...

weixin_36166714的博客 819
下一篇: jsp中获取路劲
kevin0xFFFFFFFF
博客等级 码龄17年 3粉丝 79原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值