Ich muss eine Methode an einem bestimmten Datum jedes Jahres ausführen, wie kann ich dies in Java tun?Java - Methode an einem bestimmten Datum ausführen
Danke,
Chris.
Ich muss eine Methode an einem bestimmten Datum jedes Jahres ausführen, wie kann ich dies in Java tun?Java - Methode an einem bestimmten Datum ausführen
Danke,
Chris.
Dies wird das aktuelle Datum und die Uhrzeit erhalten.
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
Dann eine Schleife, die die Funktion in jeder Sekunde überprüft und verwenden eine if-Anweisung den Code, wenn die Zeit ausführen möchten ist die Zeit, die Sie wollen.
Wie könnte ich die if-Anweisung mit dem Datum arbeiten? – Chris
Ich habe einen Prototyp gemacht, den ich jetzt teste. Wenn es funktioniert, lasse ich es Sie wissen. – Paul
Das Rad neu erfinden? – johnchen902
Schauen Sie sich die Timer Class
Die Methode:
scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
Schedules the specified task for repeated fixed-rate execution, beginning at the specified time.
ermöglicht es Ihnen, zu tun, was Sie wollen. Stellen Sie sicher, dass Sie das richtige Datum verwenden.
Mit Blick auf die API müssen Sie eine TimerTask
definieren, die die run() -Methode überlädt. Die Methode run() enthält die Methode, die Sie aufrufen möchten.
Wenn Sie etwas robustere benötigen, können Sie auch Quartz für Cron wie Scheduling verwenden
In der Reihenfolge ihrer Präferenz:
Die Quartz Bibliothek (sehr empfehlenswert).
java.util.Timer
. Nicht so leistungsstark wie Quartz, aber gut für einfache Jobs.
Der EJB Timer Service. Es ist schlecht dokumentiert, es erfordert einen vollständigen Java EE-Container und es tut nichts, was Quartz nicht tut.
wollten Sie eine Methode oder eine Anwendung (ein Java-Programm) ausführen? – CoolBeans
Eine Methode ausführen. – Chris
Wird diese Anwendung für immer ausgeführt? – birryree