1.获取系统时间
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy/MM/dd");
long start = System.currentTimeMillis( );
Date dd = new Date();
Calendar cc = Calendar.getInstance();
cc.getTimeInMillis();//结果和start一样1586785531543
2.//java.util.Calendar(抽象类)
Calendar cc = Calendar.getInstance();
cc.getTimeInMillis();//结果和start一样1586785531543
//增加年
cc.add(Calendar.YEAR,2);
//增加日期
cc.add(Calendar.DAY_OF_YEAR,2);
String str = "2020/05/03";
try {
Date ddd = sdformat.parse(str);
cc.setTime(ddd);
cc.setFirstDayOfWeek(2);
//月份增加3个月
cc.add(Calendar.MONTH,3);
//结果是:2020/08/03
System.out.println(sdf.format(cc.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
3.//java时间对比
1, SimpleDateFormat的format方法将日期型转化成时间或日期的字符串,然后再比较字符串。
2, date.getTime() 相加减或直接比较用大于小于号比较
Date startTime= df.parse(startTimeStr);
Date endTime= df.parse(endTimeStr);
if (startTime.getTime() > endTime.getTime()) {
return true;// startTime在endTime前
}
3,Date的before、after
Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false;
Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false; 特别注意:如果业务数据存在相等的时候,而且相等时也需要做相应的业务判断或处理,可以用!Date1.after(Date2)来处理。
4.得到二个日期间的间隔天数
String str1 = "2020/07/4";
String str2 = "2020/03/4";
Long day = (sdf.parse(str1).getTime() - sdf.parse(str2).getTime()) / (24 * 60 * 60 * 1000);//结果是122
参考:https://blog.csdn.net/weixin_37539378/article/details/78889992