获取当前系统时间
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。