今天有一個任務,判斷現在的時間是否在某一個時間段內
遇到的第一個問題
Date類獲取日期時間大的方法失效了
問題描述:
在學習Date類時,習慣性的用get方法調用Date()的年月日,發現不怎么好用了,
Date date=newDate();
Stringyear=date.getYear();
嘗試了其他的get方法如: getDate()getDay()getHours()getMinutes()getMonth()getSeconds() 等好幾個get方法以及對應的set方法都棄用了,那在myeclipse中不能用這些方法,
解決辦法:
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String time=sdf.format(date);
System.out.println(time);
通過date對象獲取到當前的時間, 然后再實例化SimpleDateFormat類時,為其設置日期顯示格式"yyyy-MM-dd HH:mm:ss" ,通過第三句代碼,將date對象格式化並轉化為String 類型輸出,就會打印出常見格式的日期了: 2018-9-25 12-12-12
如果僅僅想要獲得年,可以將SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 中的"yyyy-MM-dd HH:mm:ss" 改為”yyyy”,這樣得到的就只是年了.
其他的獲得月、日、周、小時、分鍾等的格式與年的相似,並且可以相互組合使用。
- 字母與代表的意思如下表內容所示。
| 字母 | 日期或時間元素 | 表示 | 示例 |
|---|---|---|---|
| G | 是Era 標識符 | Text | AD |
| y | 年 | Year | 1996; 96 |
| M | 月份 | Month | July; Jul: 07 |
| w | 年中的周數 | Number | 27 |
| W | 月份中的周數 | Number | 2 |
| D | 年中的天數 | Number | 189 |
| d | 月份中的天數 | Number | 12 |
| F | 月份中的星期 | Number | 1 |
| E | 星期中的天數 | Text | Tuesday;Tue |
| a | Am/Pm 標記 | Text | PM |
| H | 一天中的小時數 (0-23 ) | Number | 0 |
| k | 一天中的小時數 (1-24) | Number | 1 |
| K | am/pm 中的小時數(0-11) | Number | 1 |
| h | am/pm中的小時數(1-12) | Number | 12 |
| m | 小時中的分鍾數 | Number | 30 |
| s | 分鍾中的秒數 | Number | 50 |
| S | 毫秒數 | Number | 978 |
| z | 時區 | General time zone | PacificStandard Time; PST: GMT - 08:00 |
| Z | 時區 | RFC822 time zone | -0800 |
如果想要了解更多的格式化日期方法,可以去查看API文檔
獲取次日的時間
度娘給的答案:
- 獲取系統前一天日期
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
date = calendar.getTime();
return date;
}
- 獲取系統當前日期
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 0);
date = calendar.getTime();
return date;
}
- 獲取系統下一天日期
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
date = calendar.getTime();
return date;
}
最后一個問題
如何判斷一個時間在一個時間段內
/**
* Description: 判斷一個時間是否在一個時間段內 </br>
*
* @param nowTime 當前時間 </br>
* @param beginTime 開始時間 </br>
* @param endTime 結束時間 </br>
*/
private boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
Calendar date = Calendar.getInstance();
date.setTime(nowTime);
Calendar begin = Calendar.getInstance();
begin.setTime(beginTime);
Calendar end = Calendar.getInstance();
end.setTime(endTime);
return date.after(begin) && date.before(end);
}
}
