Date类和SimpleDate类两个往往是一起使用的,但是Calendar这个类主要是进行一些简单的日期计算的。
Calendar类定义:
public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>
这是一个抽象类,那么应该依靠我们的子类,进行对象实例化操作。
查看文档我们知道,构造方法被私有化了,(单例模式应用),并且一些静态常量可以获取年月日的组成。但是这个类提供一个方法,返回的是本类对象:public static Calendar getInstance()。这样就能回避掉子类,直接取得实例化对象了。
范例:取得当前的日期时间
public class TestDemo{
public static void main(String[] args) throws Exception{
Calendar calendar=Calendar.getInstance();
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append(calendar.get(Calendar.YEAR)).append("-");
stringBuffer.append(calendar.get(Calendar.MONTH)+1).append("-");//日期Calendar从0开始数月
stringBuffer.append(calendar.get(Calendar.DAY_OF_MONTH)).append(" ");
stringBuffer.append(calendar.get(Calendar.HOUR_OF_DAY)).append(":");
stringBuffer.append(calendar.get(Calendar.MINUTE)).append(":");
stringBuffer.append(calendar.get(Calendar.SECOND));
System.out.println(stringBuffer);
}
}
结果:
![9003228-5e59a1f0edec0e0f.png](https://upload-images.jianshu.io/upload_images/9003228-5e59a1f0edec0e0f.png)
image.png
但是这个类可以在我们取得的时候进行一些简单的计算,例如:若干天之后的日期。
如果是日期计算,要比Date省事,如果使用Date进行天的计算,那么就需要使用long完成了。
总结
1.以后数据库中的日期型就是用java.util.Date表示
2.代码模型:SimpleDateFormat类实现String与Date间的互相转换。