Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich stehe vor einem Problem.
Undzwar möchte ich über ein inputFeld ein Datum eingeben und diesen in mener MySql Datenbank speicherrn. Soweit so gut. Klappt auch alles wunderbar.
Allerdings wird das Datum welches ich in das inputFeld eingebe nicht richtig in der Datenbank hinterlegt.
Die Zeit wird immer +1 oder +2 abgespeichert. Das heisst gebe ich z.B. 2015-01-18 12:45:00 ein
wird es als 2015-01-18 14:45:00 hinterlegt...
der relevante Code sieht so aus:
Java:
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = fmt.format(termin);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dt = sdf.parse(date);
java.sql.Timestamp sqlDate = new java.sql.Timestamp(dt.getTime());
ps.setTimestamp(2, sqlDate);
Wie kontrollierst du den was in der DB drin steht? Hört sich für mich nach einer UTC/Sommer-Winterzeit Differenz an. Was passiert denn wenn du die Daten per Code wieder ausliest? Sind sie dann auch falsch?
Es ist halt nicht besonders schön ohne Timezone und SDTime zu arbeiten. Die arme DB kann ja nicht wissen aus welchem Land der Eintrag kommt und welche Zeit denn nun wirklich aktuell da gerade ist.
Da ich mit XAMPP und phpmyadmin arbeite, hab ich die Tabelle auch manuell erstellt. Also nicht direkt über eine SQL-Anweiseung.
TYP:Timestamp
Standart: Current_timestamp
Attribute: on update current_timestamp
Dann würd ich es mal mit dem Datentyp DateTime statt mit Timestamp in MySQL versuchen, und schaun, ob es dann immer noch so seltsam ist. Wenn ja, liegts irgendwo am Java. Bei DateTime wird nichts automatisch umgewandelt.
Ich hab es auch schon mit DateTime probiert. Der Fehler liegt vermutlich irgendwo im Java Code, denn ich lasse mir vor dem Schreiben in die Datenbank, selbigen noch über systemout print in der Console ausgeben. Und dort wird die Zeit falsch dargestellt. Wie gesagt aus 15:00:00 wird plötzlich 17:00:00 etc.
Java:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(termin);
System.out.println(date);
ps.setString(2, date);