2017-10-12 12 views
-3

これは私が出てきたコードです。それは私にデータベースにある正しい期日と正しい現在の日付を与えます。私は現在の日付がすでに期限切れであるかどうかをチェックする方法に取り組んでいました。現在の日付がすでに期限切れであることを確認する

String search = "SELECT * FROM tbltransaction"; 
PreparedStatement ps2 = con.prepareStatement(search); 

ResultSet rs2; 
rs2 = ps2.executeQuery(); 
try{ 
    if(rs2.next()){ 
    SimpleDateFormat formattedDate = new SimpleDateFormat("yyyy-MM-dd"); 
    String dateOfDue = (String)(formattedDate.format(rs2.getDate("dateOfReturn").getTime())); 
    Date dateToday = new Date(); 
    } 
}catch(Exception e){ 
    System.err.println(e); 
} 
+1

あなたの質問を編集し、サンプルデータと希望する結果を提供してください。 –

+0

このリンクは、https://www.mkyong.com/java/how-to-compare-dates-in-java/ – VelNaga

+0

お手数ですが、ありがとうございます! @VelNaga –

答えて

0

これはjava.util.Dateで実現できますが、Apache共通のDateUtilsを使用することもできます。以下のリンクが役に立つかもしれません。 Compare Dates

問題があればお知らせください。

+0

このアンサーは、Java 8でjava.timeクラスが到着したことで時代遅れです。 –

-1

あなたは、現在の日付が期日であるかどうかを知るようになるだろうstatement.Then場合は、他の使用して、この2つのタイムスタンプを比較timestamp.Thenに現在の日付と期日を変換することができます。

+0

私はすでに答えを得て、ありがとう! –

0

java.time

は、質問と他の回答は、今、後のJava 8とに組み込まれてjava.timeクラスに取って代わらレガシー、ある厄介な古いクラスを使用します。

LocalDateクラスは、時間帯とタイムゾーンのない日付のみの値として使用されます。

getDateではなくgetObjectを使用してデータベースから取得し、JDBC 4.2以降のドライバに対応しています。 時間帯を考慮

LocalDate ld = rs2.getObject("dateOfReturn" , LocalDate.class) ; 

は、現在の日付を決定する重要です。任意の瞬間について、日付はゾーンごとに世界中で異なります。たとえば、新しい日がPacific/Aucklandの場合は、America/Montrealよりも早くなります。

ZoneId z = `Asia/Kolkata` ; 
LocalDate today = LocalDate.now(z) ; 

isEqualisBefore、およびisAfterメソッドを使用して比較します。

Boolean expired = ld.isBefore(today) ; 

このトピックは既に多くの時間取り上げられています。したがって、スタックオーバーフローを検索して詳細を調べてください。

関連する問題