1、Date
java.util.Date最基本的日期类,个人感觉并不是很好用(苟都不用),大部分方法都被标记为过时了,习惯用Calendar
Date date = new Date();
date.getTime();//返回毫秒值
date.setTime(System.currentTimeMillis());//设置毫秒值为当前系统时间
SimpleDateFormat格式化和解析Date用的类,让时间看起来更清晰: y年 M月 d天
//格式化Date为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yy/MM/dd");
String time = sdf.format(date);
//解析字符串为Date
SimpleDateFormat sdf2 = new SimpleDateFormat("yy/MM/dd");
Date date2 = sdf2.parse(time);//sdf2的模式需要和字符串形式一致
2、Calendar
日期各个部分都可以自己设置,也可以直接加减日期,自己格式化字符串也很方便
Calendar创建不用new,它是个抽象类,用getInstance获得子类实例(可以创建不同国家习俗的日历)
Calendar cl = Calendar.getInstance();//用当前日期初始化标准时间
Calendar有很多字段表示日期的不同部分,可以看文档,这篇博客总结也很好:Calendar日历字段
Calendar的方法
set (年,月,日,[时,分,秒]) 设置时间
需要注意:
星期从星期天开始计,星期天值是1,星期六值是7。
月份从0开始,1月份值是0,12月份值是11。
cl.set(1949,9,1);
cl.set(1949,9,1,8,22,30);//1949年10月1日8时22分30秒
当然也可以 set(日历字段,值)
get(日历字段) 获取时间
cl.get(Calendar.DATE);//当前时间
cl.get(Calendar.YEAR);
cl.get(Calendar.MONTH);
cl.get(Calendar.WEEK_OF_YEAR);
cl.get(Calendar.WEEK_OF_MONTH);
cl.get(Calendar.DAY_OF_YEAR);
cl.get(Calendar.DAY_OF_MONTH);
cl.get(Calendar.DAY_OF_WEEK);
cl.get(Calendar.HOUR_OF_DAY);//24
cl.get(Calendar.HOUR);//12
cl.get(Calendar.MINUTE);
cl.get(Calendar.SECOND);
cl.get(Calendar.AM_PM);//0上午,1下午
add(日历字段) 增加时间
cl.add(Calendar.DAY_OF_MONTH, 1);
//其他同上
getTime()/getTimeInMillis() 返回时间
cl.getTime();//当前时间的字符串
cl.getTimeInMillis();//当前时间的毫秒数