SimpleDateFormat

Status
Nicht offen für weitere Antworten.
I

ivan_7

Gast
Hallo allerseits!
Ich arbeite mit HSQLDB und schreibe das folgende Datum in die DB: 2008-02-20 10:29:19. Wenn ich es kontrolliere (in der Datei *.script), ist der folgende Wert sichtbar: 2008-02-20 10:29:59.000000000. Was die zusätzlichen Nullen da zu suchen haben, weiss ich nicht. Möglicherweise die Nachkommastellen von Sekunden!

Nun, das ist an sich nicht das Problem. Ich lese das geschriebene Datum aus der Db als java.sql.Date heraus:


Code:
date = rs.getDate("start_date_time"); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
System.out.print(sdf.format(date));

Die Ausgabe sieht folgendermassen aus:

2008-02-20 12:00:00

Wenn ich im Debug-Modus date anschaue, hat die date-Variablen den folgenden Wert: 1203462000000. Und, das ist mir etwas verdächtig.

Was mache ich hier falsch?

Danke für jeden Tipp.
 
S

SlaterB

Gast
was sagt denn der long-Wert aus, entspricht der nun 12.00 oder den vorherigen 10:29?

mache außerdem mal eine Testreihe, speichere Werte mit Stunde 10.00, 11:00, 12:00 usw., was genau ist das Verhalten des Fehlers?:
werden immer genau 1 1/2 Stunden draufaddiert,
wird auf halbe Tage gerundet (nur mittags + Mitternacht)
oder oder?
 
I

ivan_7

Gast
Ich habe mehrere Datensätze mit unterschiedlichsten Zeiten. Egal was für eine Zeit, es ist immer 12:00:00. Ich habe das Gefühl, dass einzig der Tag-Teil ausgewertet wird. Denn, wenn ich den Tag ändere, das wird erkannt.
 

musiKk

Top Contributor
ResultSet#getDate() liefert ein java.sql.Date zurueck, SimpleDateFormat#format() nimmt ein Argument der Klasse java.util.Date. Nun ist das erste eine Unterklasse des zweiten und man kann das auch gelegentlich (immer?) casten, aber vielleicht koennte das ein Anhaltspunkt sein.
 
S

SlaterB

Gast
Datentyp in der DB?
wie sieht das Einfügen per SQL-Kommando aus, kann dort ohne Java andere Zeiten eingefügt und wieder ausgelesen werden?
 
G

Gast

Gast
Hallo,

Wie definierst du das DB Schema ?

Hibernate, JPA oder per Hand ?

Ich vermute, dass der Datentyp in der DB falsch ist.

Fuer Zeitangaben muss er auf "Timestamp" stehen fuer Datumsangaben auf "date"!
 

Det

Mitglied
Der Titel des Threads ist etwas irreführend, denn dein Problem ist sicher nicht SimpleDateFormat und auch nicht die Konvertierung von long nach Date.

Du solltest dir die JDBC-API noch mal genauer ansehen und überlegen, ob du nicht besser den Datentyp java.sql.Timestamp und ResultSet#getTimestamp verwendest. java.sql.Date ist im Gegensatz zu java.util.Date nur zur Speicherung von Datumswerten ohne Uhrzeit vorgesehen. Deshalb kann man sich nicht darauf verlassen, dass die Uhrzeit, die man da mal reingeschrieben hat, auch wieder gelesen werden kann.

Dass du den Datentyp in der Datenbank auch noch berücksichtigen musst, wurde ja bereits erwähnt.

-----

Upps, da war jemand schneller. Hätte nicht zwischendurch einen Kaffee holen sollen. :oops:
 
I

ivan_7

Gast
Vielan Dank an alle, die geholfen haben.

Der Datentyp in der DB ist Timestamp.

Die explizite Konvertierung java.sql.Date --> java.util.Date (obwohl an sich überflüssig, da java.sql.Date auch ein java.util.Date ist) hat nicht geholfen.

Aber, folgendes hat geholfen:

Code:
java.sql.Timestamp tStamp = rs.getTimestamp("name_der_spalte");

Zum Titel des Threads: Sorry, ich hatte das Gefühl, dass ich SimpleDateFormat nicht im Griff habe.

Vielen Dank.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A SimpleDateFormat Wochentag Monat Allgemeine Java-Themen 11
B SimpleDateFormat oder doch lieber GregorianCalendar Allgemeine Java-Themen 3
L Validierung einer Zeichenkette für SimpleDateFormat Allgemeine Java-Themen 10
E SimpleDateFormat-Konvertierung funktioniert nicht Allgemeine Java-Themen 3
Grejak Date und SimpleDateFormat Allgemeine Java-Themen 6
R SimpleDateFormat Allgemeine Java-Themen 8
K SimpleDateFormat Fehler Allgemeine Java-Themen 3
T SimpleDateFormat.parse() liefert falschen Tag Allgemeine Java-Themen 2
D Klassen Zeit aus NMEA-Stream in SimpleDateFormat Allgemeine Java-Themen 17
N SimpleDateFormat: Unparseable date Allgemeine Java-Themen 5
G SimpleDateFormat Allgemeine Java-Themen 7
G SimpleDateFormat Allgemeine Java-Themen 10
H2SO3- String(pattern) von SimpleDateFormat auslesen Allgemeine Java-Themen 7
A String zu Datum parsen - SimpleDateFormat Problem Allgemeine Java-Themen 8
P SimpleDateFormat/Date Allgemeine Java-Themen 4
RaoulDuke Problem mit SimpleDateFormat Allgemeine Java-Themen 4
E XML dateTime String in Date mit SimpleDateFormat umwandeln Allgemeine Java-Themen 5
B SimpleDateFormat fehler? Allgemeine Java-Themen 2
thE_29 SimpleDateFormat ? Allgemeine Java-Themen 14
G SimpleDateFormat Allgemeine Java-Themen 5
G SimpleDateFormat und Locale Allgemeine Java-Themen 10
N Problem mit SimpleDateFormat Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben