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
歡迎各路大神指正,後續用到哪些時間操作繼續更新。