该对象包含了年月日时分秒信息。具体使用以下代码:java
//String 转换为Date private static void dateDemo() throws ParseException{ String dateStr="2016-05-31 13:45:04"; String pattern="yyyy-MM-dd HH:mm:ss"; DateFormat df=new SimpleDateFormat(pattern); Date date=df.parse(dateStr); System.out.println(date.getTime()); }
注意:年月日时分秒的表现形式:mysql
- 1900
表示。包含年、月、日信息。继承自Java.util.Date。在数据库相关操做中使用,如rs.getDate,ps.setDate等。rs是指ResultSet,ps是指PreparedStatement。sql
一个包装了毫秒值的瘦包装器 (thin wrapper),它容许 JDBC 将毫秒值标识为 SQL DATE
值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来通过的毫秒数。数据库
为了与 SQL DATE
的定义一致,由 java.sql.Date
实例包装的毫秒值必须经过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。oracle
private static void sqlDateDemo(){ Date d=new Date(); //java.util.date java.sql.Date sqld= new java.sql.Date(d.getTime()); //转换为java.sql.date System.out.println("sqld: --- "+sqld.getTime()); System.out.println("sqld: toString--- "+sqld.toString()); }
特别注意:app
java.util.date与java.sql.date的ToString()方法的区别:字体
运行结果:spa
java.utl.date: toString()===Tue May 31 13:45:04 CST 2016 sqld: toString--- 2016-05-31
解释:.net
java.util.date的toString():把此 Date
对象转换为如下形式的 String
: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。code
java.sql.date的toString():格式化日期转义形式 yyyy-mm-dd 的日期。
Calendar
类是一个抽象类,包含年、月、日、时、分、秒、毫秒信息。从JDK1.1开始引入,calendar用以代替java.util.Date。
//java.util.date与calendar的互转 private static void calendarDemo(){ // Date转为Calendar Date date=new Date(); Calendar calendar=Calendar.getInstance(); calendar.setTime(date); System.out.println("Calendar date:==="+calendar.DATE); // Calendar转为Date Calendar ca=Calendar.getInstance(); //当前时间 Date d =(Date) ca.getTime(); System.out.println("java.util.date:toString()===: "+d.toString()); }
友情注意:Calendar获取年月日的方法:
System.out.println("Calendar date:==="+calendar.get(calendar.DATE)); //--日期 红色字体表示:获取字段数字相似与索引 System.out.println("ca date:==="+ca.get(ca.DAY_OF_WEEK) ); //星期几
4、java.sql.timestamp
包含年、月、日、时、分、秒、纳秒(nano)信息。
继承自java.util.Date。比java.sql.Date包含更多信息。在数据库相关操做中使用,如rs.getTimestamp,ps.setTimeStamp等。例如:若数据库中某字段hireDate为Oracle的Date类型,则使用getTimestamp时可以将年、月、日、时、分、秒信息取出;但使用getDate时则只能取出年、月、日信息。所以,通常推荐使用getTimestamp。
private static void timestampDemo(){ Date date=new Date(); // java.util.Calendar转换为java.sql.Timestamp new Timestamp(Calendar.getInstance().getTimeInMillis()); // java.util.Date转换为java.sql.Timestamp new Timestamp(date.getTime()); // String转换为java.sql.Timestamp,String格式:yyyy-mm-dd hh:mm:ss[.f...] ,方括号表示可选 Timestamp.valueOf("2013-07-06 01:49:30"); }
5、Oracle数据库提供的日期和时间类型
Oracle数据库提供了DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE四种类型。
DATE包含世纪、年、月、日、时、分、秒信息。
TIMESTAMP是DATE的扩展,包含年、月、日、时、分、秒和fractional seconds信息。定义TIMESTAMP的格式以下:
TIMESTAMP [(fractional_seconds_precision)] // 格式 TIMESTAMP 'YYYY-MM-DD HH24:MI:SS.FF' // 一个例子 TIMESTAMP '1997-01-31 09:26:50.12
其中fractional_seconds_precision是可选的,用于指定秒使用含几位小数的浮点数表示,它的取值范围是0到9,默认是6。上述例子中表示采用两位小数,它的秒值是50.12。注意:12不是毫秒值,也不是微秒值。
参考文件:
http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1005983