如何将util.Date转化为sql.Date

简介: 通过查看API可以很容易知道,util.Date类时sql.Date的父类,所以根据向上转型的原理可以很简单的知道时可行的,不用做转换都可以。但是如果想要将util.Date转化为sql.Date,是不存在向下直接转型的! 1 String str="2010-10-10"; 2 ...

通过查看API可以很容易知道,util.Date类时sql.Date的父类,所以根据向上转型的原理可以很简单的知道时可行的,不用做转换都可以。

但是如果想要将util.Date转化为sql.Date,是不存在向下直接转型的!

 1 String str="2010-10-10";
 2         Date date1=null;
 3         try {
 4             date1 = new SimpleDateFormat("yyyy-MM-dd").parse(str);
 5         } catch (ParseException e) {
 6             e.printStackTrace();
 7         }
 8 
 9 //这是我定义的一个在dbutil对象里的update方法用于向数据库中插入数据
10 dbutil.update("张三",date1);

以上代码提示以下错误:

The method update(java.lang.String, java.sql.Date) in the type DBUtil is not applicable for the arguments (java.lang.String, java.util.Date)

我们认真看API文档会发现:

sql.Date里面有个构造方法:

Date(long date)      使用给定毫秒时间值构造一个 Date 对象。

恰巧的是强大的JAVA,在util.Date里面有一个为过期的方法:

long getTime()
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

 就提供给这构造函数使用的。

所以可以将上面的代码改正为:

1         String str="2010-10-10";
2         Date date1=null;
3         try {
4             date1 = new SimpleDateFormat("yyyy-MM-dd").parse(str);
5         } catch (ParseException e) {
6             e.printStackTrace();
7         }
8         java.sql.Date hiredate=new java.sql.Date(date1.getTime());
9         dbutil.update("张三",hiredate);    

这样就可以正确的转化。

除此之外,还可以:

1         java.sql.Time date1=new java.sql.Time(new java.util.Date().getTime());//时   分    秒
2         java.sql.Timestamp date2=new java.sql.Timestamp(new java.util.Date().getTime());//年  月 日  时  分   秒 毫秒

以上在学习的时候的小总结,若有错误或不足,请大家多多指正。

目录
相关文章
|
C# 开发工具 数据库
一个比较全面的C#公共帮助类
一个比较全面的C#公共帮助类
236 0
|
Android开发 开发者
Error:Could not find com.android.support:appcompat-v7:27.0.2.
Error:Could not find com.android.support:appcompat-v7:27.0.2.
|
JavaScript 测试技术 API
Vue 2 用得好好的,为什么要升级 Vue3 呢?升级真的值得嘛!!
Vue 2 用得好好的,为什么要升级 Vue3 呢?升级真的值得嘛!!
|
10月前
|
机器学习/深度学习 人工智能 物联网
.NET 技术:引领未来开发潮流
.NET 技术以其跨平台兼容性、高效的开发体验、强大的性能表现和安全可靠的架构,成为引领未来开发潮流的重要力量。本文深入探讨了 .NET 的核心优势与特点,及其在企业级应用、移动开发、云计算、人工智能等领域的广泛应用,展示了其卓越的应用价值和未来发展前景。
165 5
|
11月前
|
物联网
物联网卡没使用会产生费用吗
物联网卡的使用费用情况通常取决于多个因素,包括卡片的类型、服务商的政策、套餐选择以及是否激活并实际使用等。对于“物联网卡没使用是否会产生费用”这一问题,答案并非绝对,而是需要根据具体情况来判断。
|
机器学习/深度学习 存储 算法
【博士每天一篇论文-技术综述】Machine Learning With Echo State Networks 一篇系统讲解ESN知识的五星文章
本文是一篇技术报告,全面介绍了回声状态网络(ESNs)的数学模型、属性、意义、训练方法、深度ESN的发展、应用和局限性,并探讨了未来的研究方向,为理解ESNs在机器学习中的应用提供了系统性的综述。
295 3
|
设计模式 C++ 开发者
C++一分钟之-智能指针:unique_ptr与shared_ptr
【6月更文挑战第24天】C++智能指针`unique_ptr`和`shared_ptr`管理内存,防止泄漏。`unique_ptr`独占资源,离开作用域自动释放;`shared_ptr`通过引用计数共享所有权,最后一个副本销毁时释放资源。常见问题包括`unique_ptr`复制、`shared_ptr`循环引用和裸指针转换。避免这些问题需使用移动语义、`weak_ptr`和明智转换裸指针。示例展示了如何使用它们管理资源。正确使用能提升代码安全性和效率。
264 2
|
存储 关系型数据库 数据库
服务器数据恢复—ESXi无法识别原数据存储和VMFS文件系统的数据恢复案例
一台某品牌服务器,通过FreeNAS来做iSCSI,然后使用两台同品牌服务器做ESXi虚拟化系统。 FreeNAS层为UFS2文件系统,使用整个存储建一个稀疏模式的文件,挂载到ESXi虚拟化系统。ESXi虚拟化系统中有3台比较重要的虚拟机,这几台虚拟机情况如下: 1、windows server操作系统,运行门户网站,采用ASP.net+PHP混合构架,部署的SqlServer和mysql数据库 。 2、FreeBSD操作系统,运行Mysql数据库,供其他多台虚拟机使用。 3、windows server系统,存放新开发的程序代码。
|
Linux Docker Python
【docker】Mac M1 构建 x64 linux镜像
【docker】Mac M1 构建 x64 linux镜像
267 0
|
Java 关系型数据库 MySQL
JDBC编程相关知识(实现图书管理系统进阶版)(上)
JDBC编程相关知识(实现图书管理系统进阶版)
147 0