[英]Check if Date is before today regardless hour Java
大家好!
我正在嘗試比較 java 中的兩個日期,以了解一個是否在實際日期之前,但它也會比較時間,所以無論是同一天,它都說它是因為將它們與時間進行比較。 有沒有辦法知道日期是否早於當天,而不是時間?
這是我使用的代碼(日期來自一個時代
long timestampDate = 1623307684;
Date date = new Date((long)timestampDate*1000);
if(date.before(Calendar.getInstance().getTime()))
{
System.out.println("Was yesterday");
}
else
{
System.out.println("Is today");
}
感謝您的時間!
java.util
日期時間 API 及其格式 API、 SimpleDateFormat
已過時且容易出錯。 建議完全停止使用它們並切換到 2014 年 3 月發布的現代日期時間 API * 。
使用java.time
的解決方案,現代日期時間 API:
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
public class Main {
public static void main(String[] args) {
long timestampDate = 1623307684L;
Instant instant = Instant.ofEpochSecond(timestampDate);
// Replace JVM's timezone, ZoneId.systemDefault() with the applicable timezone
// e.g. ZoneId.of("Etc/UTC")
LocalDate date = instant.atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate today = LocalDate.now(ZoneId.systemDefault());
if (date.isBefore(today)) {
System.out.println("The given timestamp is for a date in the past.");
// ...
}
if (date.equals(today.minusDays(1))) {
System.out.println("Yesterday");
}
}
}
從Trail: Date Time了解有關現代日期時間 API 的更多信息。
* For any reason, if you have to stick to Java 6 or Java 7, you can use ThreeTen-Backport which backports most of the java.time functionality to Java 6 & 7. If you are working for an Android project and your Android API級別仍然不符合 Java-8,請檢查Java 8+ API 可通過脫糖和如何在 Android 項目中使用 ThreeTenABP 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.