Java-Einen Tag Vor Dem Bestimmten Datum
Ich habe ein String-Datum abgelaufen ist. Aber ich brauche für die Ausführung einiger SQL-Anweisung, die am Tag zuvor abgelaufen Datum fällt. Ich mein Verfallsdatum abgelaufen ist, und durch:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String expiredDate = null;
String currentDate = dateFormat.format(new Date());
Calendar cal = Calendar.getInstance();
try {
cal.setTime(dateFormat.parse(loanDate));
cal.add(Calendar.WEEK_OF_YEAR, 2);
expiredDate = dateFormat.format(cal.getTimeInMillis());
cal.add(Calendar.WEEK_OF_YEAR, -2);
} catch (ParseException e) {
e.printStackTrace();
}
Dann bekam ich eine if-Anweisung durchführen SQL-Anweisung:
if(expiredDate.equals(currentDate)){
promptExtensionDialog();
}
Was ich versuche zu erreichen, ist für die if-Anweisung, statt des expiredDate selbst, die ich brauche, um einen Tag, bevor das Datum abgelaufen ist, und vergleichen Sie mit dem aktuellen Datum. Ich Frage mich, wie dies zu erreichen?
Vielen Dank im Voraus.
BEARBEITEN
try {
cal.setTime(dateFormat.parse(expiredDate));
cal.add(Calendar.DATE, -1);
expiredDate = dateFormat.format(cal.getTimeInMillis());
} catch (ParseException e) {
e.printStackTrace();
}
Toast.makeText(LoanBook.this,
expiredDate, Toast.LENGTH_LONG)
.show();
Dies gibt mir den nächsten Termin anstelle des früheren Datum. Haben Sie irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendung von Java (pre-8) built-in Date und Time API werden Essen Sie am Leben. Verwenden JodaTime für komplexe DateTime Manipulationen.
Immer der Vorherige Tag ist so einfach.
Wenn Sie nicht möchten, dass alle externen Bibliotheken:
String
zu einemDate
, dann verwenden Siecalendar.setTime(date)
Haben Sie versucht,JodaTime? Es ist eine fantastische Bibliothek zu tun, die manipulation von Datum leicht. In der Tat, eine Menge von Java 8 Datum der Handhabung sind abgeleitet aus JodaTime.
Für Ihre Bedürfnisse, Sie könnten etwas tun wie:
Den anderen beiden Antworten sind grundsätzlich richtig. Aber Sie auslassen, das entscheidende Problem der Zeitzonen und beginnen der Tag. Wenn Sie möchten, dass alle von gestern, tun Sie etwas wie das folgende.
Konvertieren, um ein java.sql.Timestamp.