• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

Java, Date to int konvertieren...

DeletedUser

Gast
Code:
SimpleDateFormat formatter = new SimpleDateFormat ("mm");
Date currentTime = new Date();

Wie kann ich das zu einem Integer konvertieren? Oder long... double... float... Ist mir eigentlich egal, Hauptsache ich kann damit weiterarbeiten.
Ich hab auch schon einiges ausprobiert... Auch gegooglet.

Danke im voraus =)
 

DeletedUser86497

Gast
Muss doch ne Funktion parseInt geben oder sowas. Ist ja schließlich Java, für jeden Mist ne Funktion mir doofem Namen.
 

DeletedUser

Gast
Ich erhalte:
The method parseInt(Date) is undefined for the type Utils
 

DeletedUser

Gast
wenn du nur den aktuellen Zeitstempel haben willst wäre diese Methode wohl das was du suchst:

System.currentTimeMillis() , die gibt die aktuelle Zeit in Milisekunden zurück (als long).

Für das Date-Objekt wäre die Methode getTime() die richtige, diese gibt ebenfalls die Zeit in Milisekunden zurück (als long)

Wenn du bei Java Methoden von einer Klasse suchst reicht auch meistens ein blick in die API
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html#getTime()
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Code:
Date currentTime = new Date();
long sec = currentTime.getSeconds();

(...)

long sec2 = currentTime.getSeconds();

Wenn ich jetzt sec2 - sec nehme... Dann kommt immer 0 raus.
sec2 und sec werden richtig ausgegeben...

Zudem kommt immer die Info:
The method getSeconds() from the type Date is deprecated
 

DeletedUser

Gast
getSeconds gibt ja auch nur die Sekunden der aktuellen Uhrzeit aus

also wenn es 17:55:25 ist, kommt 25 raus.

wenn du den altuellen Zeitstempel mit Milisekunden haben willst, dann musst du, wie ich bereitsgeschrieben hab die Methode getTime() nehmen.

Wenn du mit dem Datum noch weitere Berechnungen durchführen willst und auch auf Felder wie Jahr, Monat, Stunde, etc zugreifen willst solltest du dir lieber mal die Klasse GregorianCalendar anschauen. Die ist für sowas besser geeignet.

und was die differenz zwischen den beiden Werten angeht, kommt es drauf an was da zwischen so alles passiert.
 

DeletedUser

Gast
Wer hat überhaupt was von Millisekunden gesagt? mm sind Minuten...
Ich brauch nur Minuten und Sekunden.
Und dazwischen lese ich eigentlich nur etwas ein... mittels Input.readDouble();...
 

DeletedUser61508

Gast
Wer hat überhaupt was von Millisekunden gesagt? mm sind Minuten...
Ich brauch nur Minuten und Sekunden.
Und dazwischen lese ich eigentlich nur etwas ein... mittels Input.readDouble();...

Du hast da einen kleinen Denkfehler drin. In dem Moment wo du Date currentTime = new Date(); aufrufst wird ein Datumsobjekt mit der aktuellen Zeit instanziiert. Die Zeit die anschließend in currentTime als Zeitstempel enthalten ist verändert sich über die Zeit nicht mehr, egal wie oft du darauf getTime() aufrufst. Daher die Differenz 0.

Willst du eine Zeitdauer bestimmen ist die beste Methode das erwähnte long currentTime = System.currentTimeMillis(); was du wie folgt verwenden kannst:

Code:
long timestamp = System.currentTimeMillis();
//einlesen von irgendwas
long duration = System.currentTimeMillis() - timestamp;

duration kannst du anschließend manuell in Minuten und Sekunden umrechnen. Willst du dafür das DateFormat verwenden kannst du das so machen:

Code:
SimpleDateFormat f = new SimpleDateFormat("mm:ss");
String result = f.format(new Date(duration));

Und letztendlich kannst du auf einzelne Felder eines Datums über die Calendar Klasse zugreifen, die API Dokumentation dazu findest du hier, Stichworte sind getInstance(), setTime() und get() ;-)
 

DeletedUser

Gast
mit dem SimpleDateFormat würde es auch gehen

das wäre dann als Integer
Code:
Integer.valueOf(formatter.format(currentTime))

oder du nimmst den GregorianCalendar

Code:
GregorianCalendar cal = new GregorianCalendar();

		int min = cal.get(Calendar.MINUTE);
		int sec = cal.get(Calendar.SECOND);
 
Oben