TimeStamp erzeugen

Wie kann ich aus folgendem String ein „TimeStamp“ erzeugen, das
ich dann in die DB schreibe:
„05.11.2000 12:00“

Wie kann ich aus folgendem String ein „TimeStamp“ erzeugen,
das
ich dann in die DB schreibe:
„05.11.2000 12:00“

Hallo!

Mit java.text.SimpleDateFormat kannst du das zu einem java.util.Date parsen und über die Millisekunden kommst du dann zum TimeStamp:

SimpleDateFormat sdf = new SimpleDateFormat( „dd.MM.yyyy HH:mm“ );
Date d = sdf.parse( „05.11.2000 12:00“ );
TimeStamp ts = new TimeStamp( d.getTime() );

Grüße, Robert

Hi Robert,

leider haut das nicht ganz so hin!
Dieser Code:
SimpleDateFormat sdf = new SimpleDateFormat( „dd.MM.yyyy HH:mm“ );
java.util.Date d = sdf.parse(„13.12.2000 14:00“);
Timestamp ts = new Timestamp( d.getTime() );
System.out.println(„ts:“ + ts.getTime());

liefert folgendes Ergebnis:
ts:976712400000

Das ganze sollte wie folgt jedoch formatiert werden:
„yyyy-MM-dd HH:mm:ss“

Hast Du wieder einen guten Tipp?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

liefert folgendes Ergebnis:
ts:976712400000

Sorry, hab ich dann falsch verstanden. Ich hab gedacht du willst direkt das Timestamp-Objekt an ein SQLStatement-Objekt übergeben. Du willst also praktisch den Datumsstring nur umformatieren. Auch kein Problem, SimpleDateFormat kann beide Richtungen, müßte in etwa so gehen:

String sInDate = „30.12.2000 11:11:11“;

// Format-Objekt zum umwandeln des Strings in ein Date-Objekt
SimpleDateFormat sdfToDate = new SimpleDateFormat( „dd.MM.yyyy HH:mm:ss“ );

// Format-Objekt zum umwandeln des Date-Objekts in einen String
SimpleDateFormat sdfToString = new SimpleDateFormat( „yyyy-MM-dd HH:mm:ss“ );

// Zuerst mit einem Format-Objekt den String in ein Date-Objekt
// umwandeln, dann gleich wieder mit andrem Format-Objekt in
// einen String nach den andren Konventionen umwandeln
String sOutDate = sdfToString.format( sdfToDate.parse( sInDate ) );

System.out.println( sOutDate );

Probiers mal. :smile:

Grüße, Robert

Hi Robert…
haut nicht ganz hin.
Es scheint, als ob er das das Datum nicht parsen kann:

Fehlermeldung:

Unparseable date: „13.12.2000 14:00“
at java.text.DateFormat.parse(Compiled Code)
at auctionValidator.globalCheckSammelAuk(auctionValidator.java:514)
at auctionValidator.main(auctionValidator.java:117)

und das ist der Code:

String sInDate = „13.12.2000 14:00“;
SimpleDateFormat sdfToDate = new SimpleDateFormat( „dd.MM.yyyy HH:mm:ss“ );
SimpleDateFormat sdfToString = new SimpleDateFormat( „yyyy-MM-dd HH:mm:ss“ );
String sOutDate = sdfToString.format( sdfToDate.parse(sInDate));
System.out.println(sOutDate);
}

…also auch wenn ich die Sek. rausnehme, also:
SimpleDateFormat sdfToDate = new SimpleDateFormat( „dd.MM.yyyy HH:mm“ );
Macht der nicht mit!

Hallo!

Im Format-String hast du die Sekunden noch drinnen, während du sie im Datums-String dann nicht hast. Schätzomativ ist das der Grund. :smile:

Grüße, Robert

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nochmal hallo!

Hmmm, dann fällt mir auf die Schnelle auch nichts ein, probier mal ein bißchen rum, zerlegs in die einzelnen Felder, mal nur Tag, mal nur Monat etc. und schau wo es hakt.

Grüße, Robert

…also auch wenn ich die Sek. rausnehme, also:
SimpleDateFormat sdfToDate = new SimpleDateFormat( „dd.MM.yyyy
HH:mm“ );
Macht der nicht mit!

String sInDate = „13.12.2000 14:00“;
SimpleDateFormat sdfToDate = new SimpleDateFormat( „dd.MM.yyyy HH:mm“ );
SimpleDateFormat sdfToString = new SimpleDateFormat( „yyyy-MM-dd HH:mm“ );
String sOutDate="";
try {
sOutDate = sdfToString.format( sdfToDate.parse(sInDate));
} catch ( ParseException e ) {}
System.out.println(sOutDate);

Also bei mir hat es so funktioniert. Es hat lediglich der try-catch-Block gefehlt. Eigentlich sollte der Compiler da Fehler ausgespuckt haben. Möglicherweise testest du schon seit ewigen Zeiten mit einer .class, die irgendwann mal mit funktionierendem Code erstellt wurde.

Gruß Benky