日期类是个比较小的知识点,但不注意的话也容易出错,Calendar是个很强大的日期类,但MONTH字段范围是0-11,这个比较特殊:
1:Date
(1)日期类。
(2)完成如下操作(日期和毫秒值的转换)
Date -- long
Date date = new Date();
long time = date.getTime();
long -- Date
1.Date date = new Date(long time);
2.Date date = new Date();
date.setTime(long time);
(3)DateFormat类(日期和字符串的转换)
String -- Date
自定义类型格式转换为系统格式为解析
String s = "2015-10-27"
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(s);
Date -- String
系统时间转换为自定义格式为日期的格式化
Date date = new Date();//获取系统时间
SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss");
//加E表示星期
String s = sdf.format(date);
2:Calendar
(1)Calendar是日历类,它可以获取任意指定日历值,然后自由组合。
(2)成员方法:
get(日历字段):根据给定的日历字段获取值
set(年,月,日):给日历设定指定的年,月,日
add(日历字段,值):给指定的日历字段添加或者减去给定的值。取决于值的正负。
//获取当前的日历对象
Calendar calendar = Calendar.getInstance();
//获取年
int year = calendar.get(Calendar.YEAR);
//获取月
int month = calendar.get(Calendar.MONTH)+1; //月份为0-11
//日
int date = calendar.get(Calendar.DATE); 等同于DAY_OF_MONTH
//小时
int hour = calendar.get(Calendar.HOUR_OF_DAY); //HOUR表示12小时制,HOUR_OF_DAY表示24小时制的。
//分
int minute = calendar.get(Calendar.MINTUE)
//秒
int second = calendar.get(Calendar.SECOND)
///////有calendar对象后,不做设定表示当前系统时间值,可自行设定时间
//设定特定字段
calendar.set(Calendar.YEAR,2000);
calendar.set(Calendar.MONTH,10) //设定的是10月就是10月,如果系统的话会取9,因为系统MONTH范围为:0-11
//一起设定
calendar.set(2012,6,8) // calendar.set(2008,6,8,08,30,01)
//add方法,对指定字段进行加减操作
calendar.add(Calenar.YEAR,1) 年数+1
calendar.add(Calendar.MONTH,-1) 月数减1
calendar.add(Calendar.DAY_OF_MONTH,-5) 日期减少5天
实例:任意一年的二月份有多少天 (三月一号减去一天)
Calendar calenar = Calenar.getInstance();
calendar.set(year,2,1) // 设定2才是3月,因为系统设定月份范围为0-11
calendar.add(Calendar.DATE,-1)
int date = calendar.get(Calendar.DATE);
|
|