- 浏览: 831609 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (149)
- ubuntu (27)
- spring (3)
- hibernate (6)
- struts (1)
- jquery (11)
- ext (2)
- ajax (1)
- java (24)
- 设计 (4)
- db (10)
- web (10)
- 软件应用技巧 (6)
- others (2)
- 设计模式 (1)
- subversion (5)
- javascript (2)
- jpa (1)
- windows (6)
- jboss (1)
- junit (2)
- WebSphere (2)
- log4j (2)
- 新闻和感想 (0)
- ldap (3)
- tomcat (6)
- excel (1)
- PDF (1)
- xml (1)
- json (2)
- 正则表达式 (3)
最新评论
-
sunshine_love:
谢啦
svn:ignore 的用处 -
亮0000仔:
非常好。。
JAVA中浮点数的存储 -
u011840397:
你好,备份和还原到指定的目录的参数如何加呢?
svn备份和还原 -
zhglhy:
简单明了,学习了,感谢分享!
Jboss数据源密码加密 -
wmengmeng66:
写的很好,顶
spring中配置proxool数据源
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。他们跟java.util.Date有什么区别, 设计这三个类有什么用意呢?
先看看一个例子:
但是为什么java.sql.Date类型的值插入到数据库中Date字段中会发生数据截取呢? java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD 当我们调用ResultSet的getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。 可以看出,java.sql.Date,java.sql.Time和java.sql.Timestamp都是为了更好的规范化java.util.Date, 让它能更好的区分日期,时分秒。
一、java.util.Date向java.sql.Date的规范化
如果数据库中存在的非规范化部分的信息将会被劫取。在sun提供的ResultSet.java中这样对getDate进行注释的:
Retrieves the value 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丢失了日期部分. 在http://www.thunderguy.com/semicolon/2003/08/14/java-sql-date-is-not-a-real-date/ 文章中提到,要保存java.util.Date的精确值, 我们需要利用java.sql.Timestamp.
java.sql.Date
stores only date information, not times. Simply
converting a java.util.Date
into a java.sql.Date
will silently set the time to midnight. So, to store
date/times to be manipulated as java.util.Date
objects,
don’t do this:
// BUG: loses time of day preparedStatement.setDate(1, new java.sql.Date(date.getTime())); do this instead: preparedStatement.setTimestamp(1, new java.sql.Timestamp(date.getTime())); java.sql.Timestamp is not a date * * * 二、java.sql.Timestamp到java.util.Date的转化
java.sql.Timestamp extends java.util.Date , but it should not be used as a Date . In JDK 1.3.1, Timestamp.getTime() (inherited from Date ) returns the time to the nearest second only, but JDK 1.4.2 and JDK 1.5 it returns the time to the nearest millisecond as expected. So in JDK 1.3, when reading a timestamp from a ResultSet , don’t do this: // Java 1.3 java.util.Date d = resultSet.getTimestamp(1); long millis = d.getTime(); // BUG: loses fractional seconds in JDK 1.3 To get the full date including milliseconds, you have to do this: java.sql.Timestamp timestamp = resultSet.getTimestamp(1); java.util.Date d = new java.util.Date(timestamp.getTime() + timestamp.getNanos() / 1000000); //nanos是纳秒,1纳秒=百万分之一毫秒
In JDK 1.4.2 and JDK 1.5, you can just do this, depending on what you’re going to do with the Date: // Java 1.4+ java.util.Date d = resultSet.getTimestamp(1); But this might be safer since it avoids any other potential Timestamp problems: // Java 1.4+ java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime()); If your code needs to run on JDK 1.3 and later, you’ll have to do this: java.sql.Timestamp timestamp = resultSet.getTimestamp(1); long millis = (timestamp.getTime() / 1000) * 1000 + timestamp.getNanos() / 1000000; java.util.Date d = new java.util.Date(millis); |
发表评论
-
运算符优先级
2010-11-04 14:28 1813最近在研究表达式求值,看了下论坛推荐的JSEL和Aviator ... -
log4j日志文件保存路径的设置
2010-08-12 11:56 6688一直都是把log4j的日志文件位置设定成绝对路径,直到今天发 ... -
jsp页面突然不支持EL的问题
2010-07-12 16:11 2032转自http://www.iteye.com/topic/15 ... -
jvm监控
2010-07-08 00:49 15791一直没有做过jvm监控, 总以为要找些专门的工具才能做jvm监 ... -
JAVA从键盘读取输入信息
2010-02-28 17:58 2704import java.io.BufferedReader; ... -
JAVA UUID
2010-02-26 23:24 4407UUID(Universally Unique Identif ... -
JAVA中浮点数的运算
2010-02-24 15:30 1621问题的提出: 如果我们编译运行下面这个程序会看到什么 ... -
JAVA中控制double和float的精度
2010-02-24 15:21 7664本篇介绍了在JAVA中如何对double或者float的浮点数 ... -
JAVA的位移运算
2010-02-24 10:38 1074左移操作: x << nx可以是byte, ... -
各种排序JAVA实现
2009-12-15 17:25 1094package sort; import ... -
JDK自带VM分析工具jps,jstat,jmap,jconsole
2009-08-13 13:13 1669转自:http://jiajun.iteye.com/blog ... -
javabean属性命名难以为人所知的秘密
2009-07-09 10:46 3497原文:http://www.blogjav ... -
java properties文件读取乱码问题解决之道
2009-06-10 11:09 4729Poperties Editor 插件------ ... -
正则表达式参考
2009-05-21 01:40 928http://www.cnblogs.com/netshuai ... -
Apache Commons Logging 是如何决定使用哪个日志实现类的
2009-05-20 11:36 7567原文是:http://www.blogjava.net/Unm ... -
java keytool 常用命令
2009-05-05 17:10 5377最近在做ssl连接active dir ... -
理解Unsupported major.minor version 49.0为何错误
2008-09-09 11:33 2627今天一位同事在发布一个portlet到ibm portal时报 ... -
关于Java异常抛出和处理的思考
2008-07-30 17:38 7971看过不少关于java异常处 ... -
反射私有方法
2008-07-30 10:54 1733曾经碰到一件怪事:Spring可以把构造函数为私有的对象实例也 ... -
jdk5 concurrent 初学
2008-07-22 11:50 2374由于上次发现了ReentrantLock,同步的另外一种实现, ...
相关推荐
类型转换 ( Java.util.date与java.sql.date区别和转换
import java.sql.Date; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import ...
java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp区别和联系
public java.sql.Timestamp getTimestamp(java.sql.Timestamp a); public java.sql.Date getSDate(java.sql.Date a); public java.sql.Time getTime(java.sql.Time a); /*自定义类型*/ public UserBean getUser...
将java.sql.Date类型格式化成字符串显示; 将Timestamp类型格式化成字符串显示 将字符串转换成java.util.Date类型 将字符串转换成java.sql.Date类型 将字符串转换成Timestamp类型 比较两个时间的时间差,返回格式为x天...
24.java.sql.Timestamp 25.InetAddress 26.Inet4Address 27.Inet6Address 28.InetSocketAddress 1.使用xson进行对象到字节数组的序列化 User user = new User(); //set.... byte[] data = XSON.write...
Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型 datejava.sql.Date Datetimejava.sql
1. 2.DAYOFWEEK(date) 3.WEEKDAY(date) 4.DAYOFMONTH(date) ...UNIX_TIMESTAMP(date) 26.FROM_UNIXTIME(unix_timestamp) FROM_UNIXTIME(unix_timestamp,format) 27.SEC_TO_TIME(seconds) 28.TIME_TO_SEC(time)
日期转换,long类型时间转换成string类型
|| object.getClass().equals(Timestamp.class)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return "to_date('" + sdf.format(object) + "','yyyy-mm-dd hh24:mi:ss')...
将java中的Date类型存放进MySql数据库需要用到java.sql.Timestamp包,
MySql的时间类型有 Java中与之对应的时间类型date java.sql.DateDatetime java.sql.TimestampTimestamp java.sql.TimestampTime java.sql.TimeYear
import java.sql.Timestamp; import java.util.Date; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io...
import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import com.wsy.model.Back; import com.wsy.model.BookInfo; import com.wsy.model.BookType; import com.wsy.model.Borrow; ...
* @(#)DateUtil.java * * * @author kidd * @version 1.00 2007/8/8 */ import java.util.*; import java.text.*; import java.sql.Timestamp; public class DateUtils { /** * 时间范围:年 */ ...
DtSQL是一款通用的数据库查询,编辑,浏览和管理工具.它能支持目前市面上见到几乎所有的数据库,并能在主要的操作系统上运行. ...并可以选择integer, date, time, timestamp, and boolean的模板来格式化数据
Oracle date 和 timestamp 区别详解 1.DATE数据类型 这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型。它可以存储月,年,日,世纪,时,分和秒。它典型地用来表示什么时候事情...
包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。 ojdbc5.jar: 适用于jdk5 ojdbc6.jar: 适用于jdk6 ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样 ...
@TemporalType.(DATE,TIME,TIMESTAMP) 分别Map java.sql.(Date, Time, Timestamp). @Lob 注解属性将被持久化为 Blog 或 Clob 类型。具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 ...
包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。 ojdbc5.jar: 适用于jdk5 ojdbc6.jar: 适用于jdk6 ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样 ...