因此,我有一個以毫秒爲單位的時間(以前從System.currentTimeMillis()獲取)保存在一個長變量中。我現在需要的是一種確定時間是否在當前實際周內的方法。我需要獲得結果作爲布爾值。什麼是最好的方法來做到這一點?確定以毫秒爲單位給出的時間是否在本週內
0
A
回答
1
public static boolean withinThisRange(long milliseconds, Date startDate, Date endDate)
{
Date date = new Date(milliseconds);
return date.after(startDate) && date.before(endDate);
}
2
隨着Joda
new DateTime().weekOfWeekyear().toInterval().contains(millis);
您可以檢查它挑選出了整整一個星期正確通過執行類似
System.out.println(new DateMidnight(2011, 12, 31).weekOfWeekyear().toInterval());
它打印2011-12-26T00:00:00.000/2012-01-02T00:00:00.000
。向您顯示它已正確找到跨越年邊界的一週。請注意,Joda默認情況下認爲星期日是一週的第一天。不確定你是否可以改變這個星期一,如果這是你需要的。
由於Joda對象是不可變的(只有少數情況是不可變的),它們通常非常短暫,在上面的代碼中幾乎沒有性能開銷,因爲默認GC在處理短期活的物體。但是你所獲得的是一個巨大的可讀性獎金。
-1
獲取當前周開始的毫秒數和下一週開始的毫秒數。再查看,如果輸入的時間是這兩個數值之間:
public boolean isInCurrentWeek(long time) {
Calendar cal1 = GregorianCalendar.getInstance();
Calendar cal2;
cal1.set(Calendar.DAY_OF_WEEK, 0);
cal1.set(Calendar.HOUR_OF_DAY, 0);
cal1.set(Calendar.MINUTE, 0);
cal1.set(Calendar.SECOND, 0);
cal1.set(Calendar.MILLISECOND, 0);
cal2 = (GregorianCalendar) cal1.clone();
cal2.add(Calendar.DATE, 7);
return (time >= cal1.getTimeInMillis() && time < cal2.getTimeInMillis());
}
0
如果必須使用的JavaSE API的,我會強烈建議做這種方式。對未來的維護者來說更容易,他們可能不是真正的java人員,也不瞭解WEEK_OF_YEAR領域的噩夢。
public static boolean isCurrentWeek(long time) {
Calendar now = Calendar.getInstance();
Calendar work = Calendar.getInstance();
work.clear();
work.set(Calendar.YEAR, now.get(Calendar.YEAR));
work.set(Calendar.MONTH, now.get(Calendar.MONTH));
work.set(Calendar.DATE, now.get(Calendar.DATE));
work.getTime(); //force computation of WEEK_OF_MONTH
work.set(Calendar.DAY_OF_WEEK, work.getFirstDayOfWeek());
final Date start = work.getTime();
work.add(Calendar.DAY_OF_YEAR, 7);
final Date end = work.getTime();
Date timeStamp = new Date(time);
return timeStamp.before(end) && !timeStamp.before(start);
}
相關問題
- 1. Mongodb時間戳,以毫秒爲單位
- 2. 時間以毫秒爲單位計算
- 3. 花費時間以毫秒爲單位
- 4. 時間選擇器以毫秒爲單位以毫秒爲單位計算出錯誤的值
- 5. 矩不正確地分析時間以毫秒爲單位
- 6. 帶時間戳的搜索時間(以毫秒爲單位)influxdb
- 7. 典型時間格式的時間(以毫秒爲單位)
- 8. NetStream.seek以毫秒爲單位
- 9. TimeSpan.ParseExact以毫秒爲單位
- 10. 使用本地存儲需要時間以毫秒爲單位
- 11. 轉換「時間」,「單位」,以毫秒爲單位
- 12. 使用SPARQL獲取當前時間(以秒/毫秒爲單位)?
- 13. 將給定時間轉換爲毫秒
- 14. 以毫秒爲單位的TImespan,以分鐘和秒爲單位
- 15. TimePicker以毫秒爲單位倒計時
- 16. java將時間戳以秒爲單位轉換爲以毫秒爲單位的時間戳
- 17. R 2列之間的時間差(以毫秒爲單位)
- 18. 來自BPM(Midi tempo)的時間間隔(以毫秒爲單位)
- 19. 以毫秒爲單位檢測秒數
- 20. 在Excel中增加時間以毫秒爲單位
- 21. 在SQL Developer中以毫秒爲單位生成總時間
- 22. 如何在MySQL中以毫秒爲單位節省時間?
- 23. 如何在AngularJS中以毫秒爲單位獲取時間
- 24. 確定VB.net中mp3文件的長度(以毫秒爲單位)
- 25. 如何確定.gif動畫的長度(以毫秒爲單位)
- 26. 在XML定義的動畫中指定的持續時間是否真的以毫秒爲單位?
- 27. jmeter顯示響應時間,以秒爲單位而不是毫秒
- 28. 如何獲得以毫秒爲單位的時間?
- 29. 以毫秒爲單位的HTML5時間元素
- 30. 以毫秒爲單位解析Perl的時間戳
你能夠使用庫嗎?喬達是一個優秀的時間/日期圖書館。 – Dunes
您是否想在本週開始時使用本地會議(美國週日,現代世界週一)? –