Java中Date及Timestamp
整理一 这里的一片文章 我个人认为讲解的很详细 有对 java sql Date的使用还有困惑的请看
java sql Date 只存储日期数据不存储时间数据// 会丢失时间数据preparedStatement setDate( new java sql Date(date getTime())) //可以这样来处理preparedStatement setTimestamp( new java sql Timestamp(new java util Date() getTime()))
//想要得到完整的数据 包括日期和时间 可以这样java util Date d = resultSet getTimestamp( ) //这样处理更合适一些 可以避免一些潜在Timestamp 问题java util Date d = new java util Date(resultSet getTimestamp( ) 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) 转化为StringTimestamp 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继承过来的
相互转换 使用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 使用SimpleDateFormat类实现转换SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类 它允许格式化 (date > text) 语法分析 (text > date)和标准化
lishixinzhi/Article/program/Java/hx/201311/26212