uhrzeit mit einander vergleichen

Status
Nicht offen für weitere Antworten.

oschli

Mitglied
Hi,

ich möchte 2 Uhrzeit miteinander vergleichen und schauen ob eine vor der anderen liegt.
Die Uhrzeiten liegen als Strings vor:
Zeit1 09:30:00
Zeit2 10:30:00

Code:
DateForamt timeformatter= new SimpleDateFormat("ss:mm:ss");

try {
	starttime=timeformatter.parse(aLoginProps_.getStartTime());
} catch (ParseException e) {
        // TODO Auto-generated catch block
	e.printStackTrace();
}

try {
	stoptime=timeformatter.parse(aLoginProps_.getStopTime());
} catch (ParseException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}
System.out.println(starttime);
System.out.println(stoptime);

check=starttime.compareTo(stoptime);

Ausgabe:
Thu Jan 01 00:30:00 CET 1970
Thu Jan 01 00:30:00 CET 1970


Warum gibt er mir zweimal die selbe Zeit an?
Sollte ich eventuell ein default Datum nutzen, damit ich auf jeden fall den selben Tag habe?

Vielen Dank für eure Hilfe.
 
oschli hat gesagt.:
Code:
DateForamt timeformatter= new SimpleDateFormat("ss:mm:ss");
Das kann ja auch nicht gehen.

Mach das so:
Code:
DateFormat timeformatter= new SimpleDateFormat("hh:mm:ss");

Erzeuge dann ein Date-Objekt.
Code:
Date date = timeformatter.parse(timeString);

und vergleiche dann die Date-Objekte mit der compareTo()-Methode aus Date:
http://www.java-forum.org/de/viewtopic.php?p=171217#171217
 
Guten Morgen,

war bestimmt nur ein Tippfehler, aber

Code:
DateForamt

soll doch bestimmt

Code:
DateFormat

heißen...oder?

Gruß
cmkatz
 
Code:
try { 
   starttime=timeformatter.parse(aLoginProps_.getStartTime()); 
} catch (ParseException e) {  
   e.printStackTrace(); 
}

Kann mir jemand genau erklären, was dieser Block macht?
 
Ich hätte da auch nochmals ne Frage.

Gibt es auch ne Möglichkeit Datum und Zeit zu kombinieren?


Code:
dateandtimeformatter= new SimpleDateFormat("dd.MM.yyyy"+"hh:mm:ss");

Irgendwie so?
 
Ja.
Code:
dateandtimeformatter= new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
 
GAST hat gesagt.:
Code:
try { 
   starttime=timeformatter.parse(aLoginProps_.getStartTime()); 
} catch (ParseException e) {  
   e.printStackTrace(); 
}

Kann mir jemand genau erklären, was dieser Block macht?

Diese parse()-Methode:
http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html#parse(java.lang.String)
erwartet einen String und wandelt diesen in ein Objekt vom Typ Date.

Somit gibt diese Anweisung
Code:
aLoginProps_.getStartTime()
innerhalb der Klammern der parse()-Methode einen String zurück, welcher gleich an die parse()-Methode übergeben wird.

Das Ergebnis des Parsens ist ein Date-Objekt, dessen VM-Speicheradresse an die Referenz namens starttime einer Instanz vom Typ Date zugewiesen wird. Referenzen haben also die Aufgabe auf Objekte eines bestimmten Typs im Speicherbereich (Heap) der VM zu zeigen.

In einem try-catch-Block steht dieser Codeblock schließlich, weil beim Parsen jede Menge schief gehen kann, bspw. durch ein falsches Parameterformat.
 
Hi!

Möchte ein ähnliches Programm erstellen, habe aber ein etwas anderes Zeitformat!
18:55:22.521 (hh:mm:ss.ms)

Funktioniert das auch mit dem Dateformat?

Danke!


Noch eine letzte Frage welchen Datentyp muss im oben genannten Beispiel "aLoginProps_" haben?
 
Gast hat gesagt.:
Noch eine letzte Frage welchen Datentyp muss im oben genannten Beispiel "aLoginProps_" haben?
das ist im grunde nicht so wichtig. wichtig ist aber, dass deren getStartTime()-Methode einen String liefert, der dann geparst werden kann
 
So ich habs jetzt auch mal versucht, aber es funktioniert nicht!

Code:
		        DateFormat timeformatter= new SimpleDateFormat("hh:mm:ss"); //("hh:mm:ss.sss");
		        Date date = timeformatter.parse(timeString);

		        //Hier funzt es nicht.....The method getStartTime() is undefined for the type String
		        try { 
		           starttime = timeformatter.parse(time.getStartTime()); 
		        } catch (ParseException e) { 
		           e.printStackTrace();
		        }

		        try { 
		           stoptime = timeformatter.parse(time.getStopTime()); 
		        } catch (ParseException e) {
		           e.printStackTrace(); 
		        } 
		        int check = starttime.compareTo(stoptime);
		        System.out.println("var_check: " +check);

Kann mir jemand sagen, warum da ne Exeption geworfen wird?

Gruß und Danke...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben