Calendar时间操作常用方法
获取当前系统时间
1. 使用Date方式
// 直接用Date获取当前系统时间,结果:Tue May 03 08:25:44 CST 2016 Date date = new Date(); // Date中的许多方法,例如获取某年、某月、某日等,以及设置某年、某月、某日等都不再建议使用, // 建议使用calendar的各种方法替代,因此便不做记录 // 获取指定日期的毫秒数,常用来比较两个日期的大小。 date.getTime();
2. 使用Calendar方式
// 使用Calendar获取当前系统时间,需要获取Calendar对象后转换成Date输出 Calendar calendar = Calendar.getInstance(); // 这个方法相当于Date中的getTime,获取当前时间的毫秒数 calendar.getTimeInMillis();
获取值
cal.get(Calendar.YEAR);//年 cal.get(Calendar.MONTH) + 1;//月(月是从0开始的,即第一个月值为0,所以必须要+1) cal.get(Calendar.DATE);//日 cal.get (Calendar.DAY_OF_MONTH);//日 cal.get(Calendar.HOUR_OF_DAY);//时 cal.get(Calendar.MINUTE);//分 cal.get(Calendar.SECOND);//秒 cal.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)
设置值
cal.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月) 相关重载方法(参数均为int): 1、设置年、月、日 2、设置年、月、日、分
cal.set(Calendar.YEAR, 2014);//年 cal.set(Calendar.MONTH, 7);//月(月份0代表1月) cal.set(Calendar.DATE, 11);//日 cal.set(Calendar.HOUR_OF_DAY, 15);//时 cal.set(Calendar.MINUTE, 33);//分 cal.set(Calendar.SECOND, 32);//秒
运算值
cal.add(Calendar.YEAR, 1);//年 cal.add(Calendar.MONTH, 1);//月 cal.add(Calendar.DATE, 1);//日 cal.add(Calendar.HOUR_OF_DAY, -1);//时 cal.add(Calendar.MINUTE, 1);//分 cal.add(Calendar.SECOND, 1);//秒 cal.add(Calendar.DATE, 7);//周
注意: Calendar类中有以上常量的定义,此处不全列举了
public final static int YEAR = 1; public final static int MONTH = 2; public final static int DATE = 5; public final static int HOUR_OF_DAY = 11; public final static int MINUTE = 12;
格式转换
/** * 把指定的date类型时间转换为指定格式的字符串 */ static String dateToString(Date date) { String str = "yyyy-MM-dd hh:mm:ss"; SimpleDateFormat format = new SimpleDateFormat(str); String dateFormat = format.format(date); return dateFormat; } /** * 把指定的日期格式的字符串转换成Date类型 */ static Date stringToDate(String string) { String str = "yyyy-MM-dd hh:mm:ss"; SimpleDateFormat format = new SimpleDateFormat(str); Date date = new Date(); try { date = format.parse(string); } catch (Exception e) { e.getStackTrace(); } return date; } /** * 把指定的date类型日期转换成Calendar类型 */ static Calendar dateToCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; } }
日期的比较
Calendar类
public int compareTo(Calendar Calendar2)
**返回值:**该方法返回一个整数值,并且可以返回以下任意一项:
- 如果传递的参数等于此Calendar对象,则该方法返回0。
- 如果此Calendar对象的时间大于传递的对象,则该方法返回1。
- 如果此Calendar对象的时间小于传递的对象,则该方法返回-1。