3.4、日期操作类(核心)
3.4.1 、java.util.Date
学习到了今天,对于之前的简单java类,是可以和数据表进行完整映射的,但是对于数据表的日期型字段却一直没有映射,而在Java之中,如果要想表示出日期型,则使用java.util.Date类完成。
如果要想通过这个类取得当前的日期时间,那么只需要直接实例化Date类对象即可:public Date()。
package cn.mldn.demo; import java.util.Date; public class TestDemo { public static void main(String[] args) throws Exception { Date date = new Date(); System.out.println(date); // Tue Dec 18 10:02:28 CST 2012 } } |
但是发现,这个时候返回的日期时间实在是不能够被一些人所看懂,所以在之后需要对其进行转换。
提示:关于long和日期时间的转换
在Date对象之中本身是包含了日期时间数据,但是如果要想让其和long数据之间互相转换,则需要以下方式:
方式一:将Date型数据变为long型数据,public long getTime()
package cn.mldn.demo; import java.util.Date; public class TestDemo { public static void main(String[] args) throws Exception { Date date = new Date(); long num = date.getTime() ; System.out.println(num); } } |
方式二:将long型变为日期型数据,public Date(long date)
package cn.mldn.demo; import java.util.Date; public class TestDemo { public static void main(String[] args) throws Exception { Date date = new Date(System.currentTimeMillis()); // long --> Date System.out.println(date); } } |
以上的两种转换操作,在日后的开发之中一定会出现,必须使用熟练。
3.4.2 、日期格式化操作类:SimpleDateFormat(死了都要会)
在Oracle之中存在了TO_CHAR()函数(最终的数据是字符串),可以将一个日期型的数据进行格式化的操作显示,而在Java之中也可以通过java.text.SimpleDateFormat类完成TO_CHAR()函数的功能和TO_DATE()函数的功能。
但是考虑到实际问题,对于SimpleDateFormat类并不太需要关心它的继承结构了,只关心三个方法:
· 构造方法:public SimpleDateFormat(String pattern);
· 将日期格式化为字符串:public final String format(Date date);
· 将字符串格式化为日期:public Date parse(String source) throws ParseException;
但是除了以上的三个核心操作方法之外,如果要想正常的完成格式化的操作,还需要准备出一些标记:年(yyyy)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SSS)。
范例:将日期变为字符串,格式化显示
package cn.mldn.demo; import java.text.SimpleDateFormat; import java.util.Date; public class TestDemo { public static void main(String[] args) throws Exception { Date date = new Date(); // 当前日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); String str = sdf.format(date); // 将日期格式化为字符串 System.out.println(str); } } |
范例:将字符串格式化为日期
package cn.mldn.demo; import java.text.SimpleDateFormat; import java.util.Date; public class TestDemo { public static void main(String[] args) throws Exception { String str = "1980-09-19 12:12:12.122"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Date date = sdf.parse(str); // 将字符串变为日期 System.out.println(date); } } |
提示:完成了以上的代码之后,实际上对于数据表和简单Java类的映射就应该彻底完成了,数据库之中的日期时间可以通过java.util.Date进行表示。
而且此时发现字符串可以向基本数据类型(包装类)、日期类型(SimpleDateFormat)进行转换,反过来,基本数据类型(String.valueOf())和日期类型(SimpleDateFormat)也可以向字符串进行转换。