java常用类中的日期类有3种,其中有Date类,SimpleDateFormat类,Calendar类。个人理解为:SimpleDateFormat主要用于格式化日期输出,Calendar类(抽象类)主要用于设置时间。Date类用来作为中间转换的,直接用Date类的情况较为少见。
Date、字符串、SimpleDateFormat、Calendar类的转换关系如下:
1、Date类标准化输出:
Date date=new Date(); //获得当前日期
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");//标准化格式输出为年-月-日
System.out.println(sd.format(date)); //输入当前日期
2、字符串转换为日期:
String str="2013-11-22";
Date date2=sd.parse(str); //字符串转换成日期 会抛出异常
System.out.println(sd.format(date2)); //输入字符串的日期
注意:字符串的输入格式要和SimpleDateFormat类的时间输出格式要一致
3、Date转换成Calendar类
Calendar c=Calendar.getInstance(); //Calendar是一个抽象类
c.setTime(date); //对当前时间进行操作
int year=c.get(Calendar.YEAR); //获得当前日期的年
int month=c.get(Calendar.MONTH);//获得当前日期的月份
int day=c.get(Calendar.DATE);//获得当前日期的天数
也可以直接设置Calendar类的年,月,日的值
c.set(2013,1,14); //2013年1月14日
Calendar类还有其它好多种方法,更多方法可以查看API;
4、Calendar转换为Date
c.getTime(); //获得Date类型
因为Date类型转换为SimpleDateFormat类型较为方便。
5、字符串要转换成Calendar
先把字符串转换成Date类型,再转成Calendar类型进行处理。