currentTimeMillis Uhrzeit

Duesenjet123

Mitglied
Ahoi,
ich bin auf dem ganzen Gebiet hier noch nen ziemlicher Neuling und probiere nun schon mehrere Stunden aber es will einfach nicht funktionieren. Google hilft mir da leider auch nicht weiter.

Zum eigentlichen Problem:
Ich soll via currentTimeMillis die aktuelle Uhrzeit st:min sek ausgeben (UTC, es soll ja überhaupt erstmal funktionieren) ohne dabei weitere Methoden der Java-API zu verwenden.

Kann mich vielleicht irgendwer auf den richtigen Weg führen?

Vielen Dank schonmal im Voraus!
 
currentTimeMillis gibt dir die Anzahl an Millisekunden zurück, die seit dem 1.1.1970 0:00 Uhr vergangen sind. Um auf die Uhrzeit zu kommen, musst du diesen Wert erst in die entsprechende Einheit(Stunden,Minuten,Sekunden) umrechnen und dann den Rest zur Umrechnungszahl auf die nächsthöhere Einheit bilden (also Tage,Stunden,Minuten), am einfachsten mit Modulo. Als Beispiel für die Sekunden:
Java:
long time=System.currentTimeMillis();
long seks=time/1000;//1s==1000ms
int seksInMinute=(int)(seks%60);//1min==60s

Und dann entsprechen formatieren und ausgeben.
 
Ist ganz einfach:
Java:
int x=8;
if(x<10) System.out.print("0");
System.out.print(x);

Bestimmt nicht ganz sauber, geht mit System.out.printf auch besser zu realisieren, die Formatierungsstrings kann ich aber auch nicht auswendig.
 
Danke für deine Hilfe! Ein Problem hab ich aber leider immer noch.

Ich versuche (via Scanner), dass wenn ich z.B. java Zeit x (UTC, MEZ, etc.) in die Console eingebe, dass er dann direkt nur diese ausgibt. Leider bekomm ich da aber immer nur Fehler.
 
Was soll er bitte ausgeben und wieso Scanner? Wenn ich diese kryptischen Satz richtig interpretiere, gibst du beim Aufruf den Namen einer Zeitzone mit. Dieser String befindet sich dann aber im Array, das der main-Methode übergeben wird, mit einem Scanner kommt man da nicht ran.
 
Also wenn die Werte für Stunde, Minute und Sekunde erst mal berechnet sind, hilft evtl. [c]String.format("%02d:%02d:%02d", std, min, sek)[/c] weiter.
 
Also dann halt mal alles am Stück, damit alle in der Klasse auch das Gleiche raus bringen.
Wo kommen wir denn hin, wenn sich da jeder selbst was überlegt?

Java:
public class Uhrzeit {
	public static void main(String[] args) {
		int z = args.length == 0 ? 0 : Integer.parseInt(args[0]);
		long t = java.lang.System.currentTimeMillis();
		long sek = (t / 1000) % 60; 
		long min = (t / 60000) % 60; 
		long std = ((t / 3600000) +z) % 24;

		switch (z) {
		    case 0: 
			System.out.printf("Es ist jetzt %02d:%02d Uhr und %02d Sekunden (UTC).%n",std,min,sek); 
			break;

			case 1: 
			System.out.printf("Es ist jetzt %02d:%02d Uhr und %02d Sekunden (MEZ).%n",std,min,sek); 
			break;

			case 2: 
			System.out.printf("Es ist jetzt %02d:%02d Uhr und %02d Sekunden (MESZ).%n",std,min,sek); 
			break;

			default:
			System.out.println("Ungueltige Eingabe. Waehlen sie zwischen 0,1 und 2!");
		} 
	}
}
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben