util.Date,sql.Date,Timestamp问题 Timestamp基本没用过,不知道什么时候用sql.Date是不是在DAO层用啊?我在bean里面定义Date对象是util.Date,然后到dao层转换为sql.Date 大家是不是都这样做的呢?Timestamp是在什么地方用啊?能举个例子吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只需要 年月日使用 Date,需要时分秒 Timestamp Timestamp时间戳,是非常有用的一个类型。当一个用户首次创建用户数据时,可以用它Timestamp记录创建的具体时间。当一个用户登录时,服务器端可用Timestamp记录用户登录的时刻当一个用户离线时,服务器端可记录用户离线的时刻通过时间戳可以算出用户在线的时间时间戳可以非常方便地算出为日期,时间等数据型数据库中用户的数据表可以建几个时间戳型在用户类中可以设置时间戳变量在Action servlet中可以使用如下的例来建立时间戳(不需要用户填写):user.setLastLoginTime(new Timestamp(System.currentTimeMillis())); Timestamp一般和数据库Date类型打交道。 那sql.Date存进数据库后查出来能把时分秒查出来吗?存的是不是一个长整数? 这么说整个过程都不需要util.Date 了? Timestamp 时间戳 跟数字证书有关的 那我可以在bean里面和DAO层都用Timestamp吗? 如果用sql.Date存 是不是数据库取出来之后 时分秒都被截掉了? 回LZ,数据类型各有各的用处,Date,Time,Timestamp,Calendar,GregorianCalendar,它们之间有联系。可以找有关资料看一看。 Timestamp一般是在后台取值。前台一般让用户输入的一般是日期。有经验的程序员,会把日期在数据库中存为字串型。为什么?因为这样使用起来更方便。 谢谢你的热心回复你说有经验的程序员,会把日期在数据库中存为字串型。为什么?因为这样使用起来更方便。方便在哪里?我这个项目是用jdbc做 应该会方便一些 但是如果用hibernate还会更方便一些?能细说一下吗? 不行。sql.date只存进年月日。 建议还是用timestamp好至于你要用到得是字符串的时候直接 用simpleDateFormat即可获取你自己想要的string类型。因为如果是字符串的话,对数据库操作,比如说涉及到统计之类的就比较费事了~~~~ sdafadsada 那我该在javabean里面用util.date 在dao层用timestamp? 到这里看看,"从此不再有时间问题" http://blog.csdn.net/haibin5413/article/details/6682805 可以 ,你可以给属性的类型设为 Timestamp的 回LZ,你把对象的实例字段设计成Date型还是Timestamp型要根据具体的应用和方便来决定. 我所说的有经验的程序员往往把日期型的数据弄成String型保存是有根据的,不是我的创造,但是那篇文章我找不到了(也没下功夫去搜索)。针对JDBC编程来说,如果日期数据在实体类和数据库中都用Date型,那么客户端用户输入的日期在控制层要转换一次才能Set进实体类,存入数据库后,由于是Date型的,在查询时也没有String型的方便,不一样的数据库查询方法可能还不一样。而从数据库取出后,取年份也好取月份也好,串也是比较方便的,输出到报表什么的也要转换成串。总之,那篇文章从编程的角度,通过一个个实例说明用String比Date型方便(可惜那篇文章我没留下)。 现在由于有了JPA,Hibernate等技术,使用Date比以前要方便了。怎么选根据个人偏好决定。 在javabean里面也用timestamp ?都用timestamp? 恩 我之前就听有人说日期设置成string会比较方便 但是我不知道那样做的好处具体在什么地方 要是有具体的例子能学学就好了 大概是这篇,可以参考以下:http://www.blogjava.net/yesjoy/articles/74965.htmlhttp://www.blogjava.net/yesjoy/articles/74967.html多看看,比较比较 public class Timestampextends Date一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它添加保存 SQL TIMESTAMP 毫微秒值和提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。 注:此类型由 java.util.Date 和单独的毫微秒值组成。只有整数秒才会存储在 java.util.Date 组件中。小数秒(毫微秒)是独立存在的。传递 java.util.Date 类型的值时,Timestamp.equals(Object) 方法永远不会返回 true,因为日期的毫微秒组件是未知的。因此,相对于 java.util.Date.equals(Object) 方法而言,Timestamp.equals(Object) 方法是不对称的。此外,hashcode 方法使用基础 java.util.Date 实现并因此在其计算中不包括毫微秒。 鉴于 Timestamp 类和上述 java.util.Date 类之间的不同,建议代码一般不要将 Timestamp 值视为 java.util.Date 的实例。Timestamp 和 java.util.Date 之间的继承关系实际上指的是实现继承,而不是类型继承。 姐姐,哥哥们,菜鸟又来问一个关于return的问题。 为什么会是空引用??? java线程通信,跪求实现。 Java3D 如何加载 .X模型 和 .dds贴图 引用类型可以直接转换成原始类型吗? JTextArea组件使用问题 非阻塞I/O中服务器得到的SocketChannel怎样进行管理? 同样一个涉及javebean的例子,为何weblogic成功反而tomcat不成功呢? 怎样用java给文件加密和解密 在书上看到is-a和has-a不知是什么意思,高人解答下,thanks!! Exception in thread "main" java.lang.NoClassDefFoundError运行报错 JSONObject放入自定义类对象问题
当一个用户首次创建用户数据时,可以用它Timestamp记录创建的具体时间。
当一个用户登录时,服务器端可用Timestamp记录用户登录的时刻
当一个用户离线时,服务器端可记录用户离线的时刻
通过时间戳可以算出用户在线的时间
时间戳可以非常方便地算出为日期,时间等数据型数据库中用户的数据表可以建几个时间戳型
在用户类中可以设置时间戳变量在Action servlet中可以使用如下的例来建立时间戳(不需要用户填写):user.setLastLoginTime(new Timestamp(System.currentTimeMillis()));
那sql.Date存进数据库后查出来能把时分秒查出来吗?存的是不是一个长整数?
这么说整个过程都不需要util.Date 了?
那我可以在bean里面和DAO层都用Timestamp吗?
有经验的程序员,会把日期在数据库中存为字串型。为什么?因为这样使用起来更方便。
谢谢你的热心回复你说有经验的程序员,会把日期在数据库中存为字串型。为什么?因为这样使用起来更方便。方便在哪里?我这个项目是用jdbc做 应该会方便一些 但是如果用hibernate还会更方便一些?能细说一下吗?
至于你要用到得是字符串的时候
直接 用simpleDateFormat即可获取你自己想要的string类型。
因为如果是字符串的话,对数据库操作,比如说涉及到统计之类的就比较费事了~~~~
那我该在javabean里面用util.date 在dao层用timestamp?
可以 ,你可以给属性的类型设为 Timestamp的
我所说的有经验的程序员往往把日期型的数据弄成String型保存是有根据的,不是我的创造,但是那篇文章我找不到了(也没下功夫去搜索)。针对JDBC编程来说,如果日期数据在实体类和数据库中都用Date型,那么客户端用户输入的日期在控制层要转换一次才能Set进实体类,存入数据库后,由于是Date型的,在查询时也没有String型的方便,不一样的数据库查询方法可能还不一样。而从数据库取出后,取年份也好取月份也好,串也是比较方便的,输出到报表什么的也要转换成串。总之,那篇文章从编程的角度,通过一个个实例说明用String比Date型方便(可惜那篇文章我没留下)。
现在由于有了JPA,Hibernate等技术,使用Date比以前要方便了。怎么选根据个人偏好决定。
在javabean里面也用timestamp ?都用timestamp?
恩 我之前就听有人说日期设置成string会比较方便 但是我不知道那样做的好处具体在什么地方 要是有具体的例子能学学就好了
http://www.blogjava.net/yesjoy/articles/74965.html
http://www.blogjava.net/yesjoy/articles/74967.html
多看看,比较比较
一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它添加保存 SQL TIMESTAMP 毫微秒值和提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。 注:此类型由 java.util.Date 和单独的毫微秒值组成。只有整数秒才会存储在 java.util.Date 组件中。小数秒(毫微秒)是独立存在的。传递 java.util.Date 类型的值时,Timestamp.equals(Object) 方法永远不会返回 true,因为日期的毫微秒组件是未知的。因此,相对于 java.util.Date.equals(Object) 方法而言,Timestamp.equals(Object) 方法是不对称的。此外,hashcode 方法使用基础 java.util.Date 实现并因此在其计算中不包括毫微秒。 鉴于 Timestamp 类和上述 java.util.Date 类之间的不同,建议代码一般不要将 Timestamp 值视为 java.util.Date 的实例。Timestamp 和 java.util.Date 之间的继承关系实际上指的是实现继承,而不是类型继承。