簡體   English   中英

檢查日期是否在今天之前,無論小時 Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM