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)

**返回值:**该方法返回一个整数值,并且可以返回以下任意一项:

  1. 如果传递的参数等于此Calendar对象,则该方法返回0。
  2. 如果此Calendar对象的时间大于传递的对象,则该方法返回1。
  3. 如果此Calendar对象的时间小于传递的对象,则该方法返回-1。
经验分享 程序员 微信小程序 职场和发展