Zum Beispiel habe ich eine Tabelle wie folgt:Wie kann man das aktuelle Datum und die aktuelle Uhrzeit mit PostgreSQL DB einfügen und in einem bestimmten Format zurückholen?
CREATE TABLE MESSAGES(
MESSAGE_ID INTEGER PRIMARY KEY,
SENT TIMESTAMP NOT NULL
);
Während in meiner Java-Klasse habe ich als integer und gesendet als Kalender genommen message_id.
Meine Frage geht in etwa so:
Während Einfügen (nur für das Datum Teil angezeigt):
String sql1="insert into messages (message_id,sent) values (?,?)";
Calendar cal=Calendar.getInstance();
ps1.setDate(2, new java.sql.Date(cal.getTimeInMillis()));
Nachdem der Tabellenansicht eingefügt ist:
message_id gesendet
1 | 2016-12-22 00:00:00
2 | 2016-6-22 00:00:00
Während Abrufen (zeigt nur für das Datum Teil):
String sql="select message_id, sent from messages";
Messages msg=new Messages();
Calendar cal=Calendar.getInstance();
Date d=rs.getDate("sent");
String pattern = "yyyy-MM-dd hh:mm:ss a";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String conDate=simpleDateFormat.format(d);
ich die Termine aber die Zeit ist immer 12.00.00. Ich mag es so in ein Format zeigen, erhalten:
„Die Meldung auf 2016.12.03 19.30.00 Uhr gesendet wurde“
Bin ich etwas falsch gemacht? Jede Art von Hilfe wird geschätzt ... :)
'hh' ist die Stunde in AM/PM Sie wollen' HH': http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html –
Die Art, wie ich [gelesen habe] Verwenden Sie die Java 8 Date and Time-Klassen] (https://jdbc.postgresql.org/documentation/head/8-date-time.html), wenn Sie die Klassen 'java.time' und den neuesten PostgrSQL-JDBC-Treiber verwenden können, Sie sollten eine 'LocalDateTime' an Ihre vorbereitete Anweisung übergeben und eine' LocalDateTime' aus der Ergebnismenge anfordern. Dies ist eine gute Nachricht, da diese Klassen viel schöner sind als 'Date' und' SimpleDateFormat'. –