Java中常用来处理时间的三个类:Date、Calendar、SimpleDateFormate,以及Java中的单例设计模式:懒汉式、饿汉式以及静态内部类式
(一)java.util.Date类
1.该类有一个long类型的属性:用来存放时间,是用毫秒数的形式表示,开始的日期是从1970年1月1号 00:00:00.
2.该类的很多方法都已经过时,不建议使用,对日期进行操作,建议使用Calendar类
3.Date d=new Date() 创建一个表示当前的日前Date对象,然后我们通过Calendar类来对他进行操作,例如:进行日期的加减
(二)java.util.Calendar类
该类是一个抽象类,通过Calendar.getInstance()获得它的子类对象,Calendar cal=Calendar.getInstance(),然后通过cal.setTime()方法,传入一个Date类型参数,然后就可以通过cal这个对象实现对日期的操作,具体的可以查看API,主要了解这个类的作用,是用来实现对日期进行操作,如果没有想要的方法,可以去查看它的子类GregorianCalendar的API
(三)java.util.SimpleDateFormat类
1.该类的作用是通过特定的模板,显示特定格式的日期,说的在简单一些,就是给人看的时间,因为Date类里面存放的是long类型的数据,计算机可以看的明白,但是人就不行。
2.该类的具体用法:先看下面一对代码
运行效果:
说明:SimpleDateFormat类的构造器,可以传入一个模板,用字符串形式表示,具体的字符含义看下图: 最后在调用format()方法,就可以返回字符串形式表示的特定格式的日期时间
(四)单例设计模式:保证一个类只有一个实例对象,并且提供一个访问该实例的全局访问点
1.懒汉式,看下面代码:
说明:实现了延时加载,正在用的时候在调用,不过方法需要同步,效率就低下了
2.饿汉式,看下面代码:
说明:加载这个类的时候,就会创建该类对象,不能实现延时加载,天然的线程安全,方法不用同步,效率高
3.静态内部类,看下面代码:
说明:线程安全,实现了延时加载,在调用的时候在加载内部类,加载的时候创建外部类对象,由于类只会被加载一次,天然的线程安全,效率也高