java.sql.Date转换
---恢复内容开始---
JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法,以及util包下的Date类与字符串的相互转换
在java环境中使用的Date时间类通常是java.util.Date,而数据库中声明变量类型为Date时,对应的是java.sql.Date,因此当在java代码中获取java.util.Date时间对象后,
需要转化为java.sql.Date类才能放入数据库中
1、如何将java.util.Date转化为java.sql.Date?
java.util.Date utilDate=new java.util.Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
2、如果要插入到数据库并且相应的字段为Date类型
那么可以用PreparedStatement.setDate(int parameterIndex ,java.sql.Date sqlDate)方法
第一个参数是占位符的参数索引,第二个参数是一个java.sql.Date类型的Date对象
其中的java.sql.Date可以用上面的方法得到
PreparedStatement pst;
java.util.Date Utildate=new java.util.Date();
pst.setDate(int parameterIndex, java.sql.Date(Utildate.getTime())); //这里的Date是sql中的,得到的是日期
pst.setTime(int parameterIndex, java.sql.Time(Utildate.getTime())) //sql包中的Time::得到的是时间
pst.setObject(int parameterIndex, java.sql.Timestamp(Utildate.getTime())); //::得到的是日期及时间
也可以用数据库提供TO_DATE函数
比如 现有 ud
TO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"),
"YYYY-MM-DD HH24:MI:SS")
注意java中表示格式和数据库提供的格式的不同
一个实际的例子
sql="update tablename set timer=to_date('"+t+"','yyyymmddhh24miss') where ....."
这里的t为变量为类似:20051211131223
3、如何将"yyyy-mm-dd"格式的字符串转换为java.sql.Date
方法1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); /**yyyy-MM-dd为字符串的格式**/
String stringToParse = "2007-7-12"; /**要转化为java.util.Date的字符串**/
try {
java.util.Date date = sdf.parse(stringToParse);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate.getTime());
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
------------------------------------------------------------
方法2
String strDate = "2002-08-09";
StringTokenizer st = new StringTokenizer(strDate, "-");
java.sql.Date date = new java.sql.Date(Integer.parseInt(st.nextToken()),
Integer.parseInt(st.nextToken()),
Integer.parseInt(st.nextToken()));
方法3
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。
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往往不是一个规范的java.sql.Date.要保存java.util.Date的精确值,
我们需要利用java.sql.Timestamp.
Calendar calendar=Calendar.getInstance();
//获得当前时间,声明时间变量
int year=calendar.get(Calendar.YEAR);
//得到年
int month=calendar.get(Calendar.MONTH);
//得到月,但是,月份要加上1
month=month+1;
int date=calendar.get(Calendar.DATE);
//获得日期
String today=""+year+"-"+month+"-"+date+"";
java.sql.Date转换的更多相关文章
- [转]java.util.Date和java.sql.Date转换
Date 的类型转换:首先记住java.util.Date 为 java.sql.Date的父类 1.将java.util.Date 转换为 java.sql.Date java.lang.Class ...
- java.util.Date和java.sql.Date的区别及应用
java.util.Date 就是在除了SQL语句的情况下面使用java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然就可以直接构建ja ...
- java.util.Date与java.sql.Date的关系和转换方法(转)
在ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date. 因此在DAO层我们经常 ...
- java.util.Date和java.sql.Date的区别和相互转化 (转)
java.util.Date和java.sql.Date的区别及应用 java.util.Date 就是在除了SQL语句的情况下面使用 java.sql.Date 是针对SQL语句使用的,它只包含 ...
- java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换
java获取取得Timestamp类型的当前系统时间java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new T ...
- java.util.Date 与 java.sql.Date 之间的转换
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); String dateStr = sdf.for ...
- java.sql.date和java.util.date的区别和转换
不同点:java.util.Date是在除了SQL语句的情况下面使用的.java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分java.util.Date 是 java.sql. ...
- 关于如何处理JSONObject.fromObject(Object obj)无法转换特殊日期(java.sql.Date,java.sql.Timestamp)格式的问题。
转:关于如何处理JSONObject.fromObject(Object obj)无法转换特殊日期(java.sql.Date,java.sql.Timestamp)格式的问题. 关于JSONObje ...
- java.sql.Date和java.sql.Timestamp转换
转自:https://www.xuebuyuan.com/1479399.html 在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换.若对应数据库数据是o ...
随机推荐
- 做一个php登陆页面,用pc登陆和用手机登陆弹出来的登陆页面不一样。
<?phpheader('Content-Type:text/html; charset=UTF-8');//定义页面编码为utf8$is_pc = (strpos($agent, 'windo ...
- vs2010编译C++ 结构体
//结构体的测试// CTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usi ...
- 新闻网大数据实时分析可视化系统项目——17、Spark2.X分布式弹性数据集
1.三大弹性数据集介绍 1)概念 2)优缺点对比 2.Spark RDD概述与创建方式 1)概述 在集群背后,有一个非常重要的分布式数据架构,即弹性分布式数据集(resilientdistribute ...
- 第1节 网站点击流项目(上):4、网站的数据采集,使用flume的taildir实现多个文件的监控采集
一. 模块开发----数据采集 1. 需求 在网站web流量日志分析这种场景中,对数据采集部分的可靠性.容错能力要求通常不会非常严苛,因此使用通用的flume日志采集框架完全可以满足需求. 2. Fl ...
- [Luogu][P2458] [SDOI2006]保安站岗
题目链接 看起来似乎跟最小点覆盖有点像.但区别在于: 最小点覆盖要求所有边在其中,而本题要求所有点在其中. 即:一个点不选时,它的儿子不一定需要全选. 画图理解: 对于这样一幅图,本题中可以这样选择: ...
- html基础与入门
html就是指一个html文件,它是由各种标签组成的 html分为 < !DOCTYPE html > 和 Head 和 Body Head title+meta+link+style B ...
- 036、Java中三目运算符的使用
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 已解决!kali桌面无法放置快捷方式问题
kali不知从哪个版本更新之后桌面上就不能添加快捷方式了,经过一番折腾找到了解决方法. 1.终端运行命令:apt-get install gnome-shell-extension-desktop-i ...
- 一道算法题加深我对C++中map函数的理解
一.一道题目引发我对map函数的考量 首先是题目大意:有n个银行,a[i]表示这个人在第i个银行有a[i]块钱(可以是负数),所有银行的钱加起来正好是0.每次只能在相邻的银行之间转账,问最少要转多少次 ...
- 安装部署及升级到Exchange Server 2010
本文档详细的描述了,如何在Windows Server 2008 R2的环境下安装Exchange Server 2010,包括的内容有: 先检查组织环境: 1.请确保林的功能级别至少为 Wind ...