3 回答

TA貢獻1883條經驗 獲得超3個贊
您首先將毫秒轉換為Date或LocalDate,然后運行比較。
這是一個簡單的例子:
import java.time.*;
class DateCheckSample {
public static void main(String[] args) {
// Our input date
long millis = System.currentTimeMillis();
// Convert the millis to a LocalDate
Instant instant = Instant.ofEpochMilli(millis);
LocalDate inputDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
// Grab today's date
LocalDate todaysDate = LocalDate.now();
System.out.println(millis);
// Check if date is yesterday
if (todaysDate.minusDays(1).equals(inputDate)) {
System.out.println(inputDate + " was yesterday!");
} else {
System.out.println(inputDate + " was NOT yeseterday!");
}
}
}
結果:
2019-02-16 was NOT yesterday!
如果您想確認它是否正常工作,只需在運行前減去100000000。millis
旁注:正如您對問題的評論中指出的那樣,這23:59不是一個毫秒值......

TA貢獻1856條經驗 獲得超11個贊
如果您不想使用Date,您可以簡單地使用模數運算符和一些巧妙的算術。System#currentTimeMillis返回自 1970 年 1 月 1 日午夜 (00:00) 以來經過的毫秒數。
將此與一天中的毫秒數(86,400,000)結合起來,我們可以計算出一天的最后開始時間——也就是今天開始的時間。然后我們可以查看給我們的時間是小于還是大于該值。
boolean isToday(long milliseconds) {
long now = System.currentTimeMillis();
long todayStart = now - (now % 86400000);
if(milliseconds >= todayStart) {
return true;
}
return false;
}
要檢查某個時間是否是昨天而不是今天,我們只需檢查它是否在今天開始和昨天開始之間。
boolean isYesterday(long milliseconds) {
long now = System.currentTimeMillis();
long todayStart = now - (now % 86400000);
long yesterdayStart = todayStart - 86400000;
if(milliseconds >= yesterdayStart && < todayStart) {
return true;
}
return false;
}
添加回答
舉報