tl; dr
myPreparedStatement.setObject(
… ,
myXGC.toGregorianCalendar()
.toZonedDateTime()
) ;
ja va.time
Nowoczesne podejście wykorzystuje klasy java.time, które zastąpiły kłopotliwe stare klasy Date
, Calendar
i GregorianCalendar
.
Konwertuj ze starszych klas na java.time.
GregorianCalendar gc = myXGC.toGregorianCalendar() ;
ZonedDateTime zdt = gc.toZonedDateTime();
przekazywać wartości daty i czasu do bazy danych jak Date-Time obiektów, a nie jako ciągi.
Jeśli sterownik JDBC jest zgodny z JDBC 4.2 i nowszymi wersjami, możesz obsługiwać bezpośrednio typy java.time.
myPreparedStatement.setObject(… , zdt) ;
Jeśli sterownik nie jest jeszcze zgodny, należy krótko przekonwertować na typ java.sql.
myPreparedStatement.setTimestamp(… , java.sql.Timestamp.from (zdt.toInstant())) ;
Duplikat http://stackoverflow.com/questions/882420/string-to-date-in-different-format-in-java – AurA
Nie formatować datownik przed włożeniem do DB. Używasz klasy java.util.Date. –