JAVA工具类——Date
一.格式化日期类型
1.Date转String
//参数pattern可以任意(参数中有一下字符即可)如:
//1.yyyy年-MM月-dd日
//2.HH:mm:ss
//3......
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
String nowTime=sdf.format(date);
System.out.println(nowTime);
2.String转Date
//若要转换精确到秒,则使用该pattern
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String neededParseTime="2019-08-30 22:44:21";
try {
Date nowTime = sdf.parse(neededParseTime);
System.out.println(nowTime);
} catch (ParseException e) {
e.printStackTrace();
}
输出结果:Fri Aug 30 22:44:21 CST 2019
二.日期之间的比较
1.Date工具类的before(),after()方法
//before 理解为 “<”,after 理解为 “>”。
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeOne="2019-08-30 22:44:21";
String timeTwo="2019-09-30 22:44:21";
try {
Date comparedTimeOne = sdf.parse(TimeOne);
Date comparedTimeTwo = sdf.parse(TimeTwo);
boolean result1=comparedTimeOne.before(comparedTimeTwo);
boolean result2=comparedTimeTwo.before(comparedTimeOne);
boolean result3=comparedTimeOne.after(comparedTimeTwo);
boolean result4=comparedTimeTwo.after(comparedTimeOne);
System.out.println(result1+" "+result2+" "+result3+" "+result4);
} catch (ParseException e) {
e.printStackTrace();
}
运行结果:true false false true
2.Date工具类的getTime()方法
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeOne="2019-08-30 22:44:21";
String timeTwo="2019-09-30 22:44:21";
try {
Date comparedTimeOne = sdf.parse(timeOne);
Date comparedTimeTwo = sdf.parse(timeTwo);
long timeMillisecondOne = comparedTimeOne.getTime();
long timeMillisecondTwo = comparedTimeTwo.getTime();
boolean result = timeMillisecondOne > timeMillisecondTwo;
System.out.println("毫秒数比较结果:"+result);
} catch (ParseException e) {
e.printStackTrace();
}
运行结果:毫秒数比较结果:false
3.String的compareTo()方法
//保持两个字符串格式一致,
//可以理解为 compareTo 左边字符串中每一位与右边字符串中对应位数做差
//结果为“—”,前边时间小;反之,前边时间大。
String timeOne="2019-06-30 22:44:21";
String timeTwo="2019-09-30 22:44:21";
int result=timeOne.compareTo(timeTwo);
System.out.println(result);
运行结果:-3
三.获取一个月的最后一天
//获取一个月中的最后一天
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// 定义当前期间的1号的date对象
Date date = null;
try {
date = sdf.parse("20190201");
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH,1);//月增加1天;若获取下一个月最后一天,1改2即可
calendar.add(Calendar.DAY_OF_MONTH,-1);//日期倒数一日,既得到本月最后一天
Date voucherDate = calendar.getTime();
System.out.println(sdf.format(voucherDate));
运行结果:20190228
四,获取两个日期间隔天数
String dateStr1="2016-02-01";
String dateStr2="2019-08-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date parseDate1=null;
Date parseDate2=null;
try {
parseDate1 = sdf.parse(dateStr1);
parseDate2 = sdf.parse(dateStr2);
} catch (ParseException e) {
e.printStackTrace();
}
//计算两个日期的毫秒数,他们的差除以一天的毫秒数
int days = (int) ((parseDate2.getTime() - parseDate1.getTime()) / (1000*3600*24));
System.out.println("间隔天数:"+days);
运行结果:间隔天数:1102
欢迎各路大神指正,后续用到哪些时间操作继续更新。