String to Date umwandeln

P_H_I_L

Erfahrenes Mitglied
Hallo Zusammen, wollte einen String in ein DAte umwandeln. aber jedes mal bekomme ich eine exception. unparseable Date:""

also das krieg ich andauern in meinem ExceptionBlock.
Java:
String newTagesdatum = tmpTagesdatum + " 11:11:11";
String newAktualisierungsdatum = AktualisierungsStand + " 11:11:11";

try{
    SimpleDateFormat sdfToDate = new SimpleDateFormat( "dd.MM.yyyy HH:mm:ss" );
    Date date1 = sdfToDate.parse(newTagesdatum);
    Date date2 = sdfToDate.parse(newAktualisierungsdatum);
}
catch(ParseException ex2){
    
    log("Fehler");
}

Als Beispiel:
tmpTagesdatum enthält "02.02.2008"
newTagesdatum enthält "02.02.2008 11:11:11"

Aber warum geht es nicht, was mache ich falsch?
 
Folgendes läuft bei mir fehlerfrei durch:

Java:
	public static void main(String[] args) {

		String tmpTagesdatum = "02.02.2008";

		String newTagesdatum = tmpTagesdatum + " 11:11:11";

		try {
			SimpleDateFormat sdfToDate = new SimpleDateFormat(
					"dd.MM.yyyy HH:mm:ss");
			Date date1 = sdfToDate.parse(newTagesdatum);
			System.out.println(date1);
		} catch (ParseException ex2) {
			ex2.printStackTrace();

		}
	}
 
ja muss mich dafür sehr entschuldigen, habe noch mal geprüft und es funktioniert wirklich. habe anscheinend wirklich gestern einen null-string übergeben. Leichtsinn von mir... sorry...

und jetzt will ich die beiden Datume vergleichen. Wenn datum1 > datum 2 ist....also ganz normales IF-Statement.
wie mache ich das? muss ich erst die Millisekunden mir holen mit getTime()? oder gibts besseres?
 
Es müsste da was mit dem GregorianCalendar gehen mein ich.
Ansonsten ist das Umwandeln in ms mit getTime() natürlich auch eine gute Alternative.
 
habe jetzt mal getTime() eingebaut, doch das mit den Millisekunden verunsichert mich ein wenig *G*
--> das system muss über jahre hinweg sauber laufen. und muss immer das tagesdatum prüfen gegen ein frei konfigurierbares datum...
wenn das tagesdatum > als das konfigurierbare ist, dann soll ein Download stattfinden...

dumme Frage mal:
ist denn die Umrechnung von Millisekunden immer richtig? kann mir das gerade nicht so vorstellen das da richtig umgerechnet wird.

entspricht das frühere datum immer weniger Millisekunden als das spätere datum ist das immer so?

z.B 10.10.2008 zu 10.10.2010
 
Die Millisekunden werden von einem festen Zeitpunkt aus gerechnet...1. Januar 1970 UTC oder so.... diese werden auch im Hintergrund verwendet, um den Zeitpunkt wirklich zu speichern.

Vielleicht empfiehlt sich (je nachdem wie oft du noch mit Daten hantieren musst) die http://joda-time.sourceforge.net/ zu verwenden.

Ansonsten ist es über die Millisekunden der einfachste Weg.
 
Zuletzt bearbeitet:
ja danke danke! aber ich bleibe jetzt bei Millisekunden. wenn von 1970 gerechnet wird, dann muss das einfach passen.. super danke nochmal :)
 
Zurück