Warum aktualisiert die Zeit nicht?

Yyedprior

Neues Mitglied
Moin,

hier ein kleiner Code, dessen Resultat ich nicht verstehen kann:

Java:
import java.util.*;

public class TestDate {

    public static void main(String[] args) throws Exception {
       
        Calendar cal = Calendar.getInstance();
        Date zeit = new Date();
       
        for(int i=0;i<1000;i++) {
            zeit=cal.getTime();
            System.out.println(cal.getTimeInMillis()+"    "+zeit+"   "+System.currentTimeMillis());
            Thread.sleep(500);
        }
    }
}

Bei der Ausgabe ändert sich nur der letzte Teil (System.currentTimeMillis()). Warum ändern sich die ersten beiden nicht?

Danke vorab, Yed.
 
Zuletzt bearbeitet von einem Moderator:
Java:
import java.util.Calendar;
import java.util.Date;

public class TestDate {

	public static void main(String[] args) throws Exception {

		Calendar cal = Calendar.getInstance();
		Date zeit = new Date();

		for (int i = 0; i < 1000; i++) {
			cal = Calendar.getInstance(); // vergessen
			zeit = cal.getTime();
			System.out.println(cal.getTimeInMillis() + " " + zeit + " " + System.currentTimeMillis());
			Thread.sleep(500);
		}
	}
}
 
Eine Instanz eines `Calendar` repräsentiert nicht die "aktuelle" Zeit, sondern einen festen Zeitpunkt - bei dir der Zeitpunkt, an welchem du die Calendar Instanz mit `Calendar.getInstance()` erzeugt hast.

In etwa vergleichbar mit einem Wandkalender (du weißt schon, so einem, bei dem man mit einem Schieber den aktuellen Tag markieren kann). Aktualisiert man den nicht manuell, bleibt er auf dem zuletzt aktualisierten Tag stehen.
 

Neue Themen


Zurück
Oben