Java判斷當前時間是否在某一時間段內


今天有一個任務,判斷現在的時間是否在某一個時間段內

遇到的第一個問題

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);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM