Datum und Zeit

Jay1980

Bekanntes Mitglied
Servus,

leck mich fett, das mit den Zeitangaben in einer Programmiersprache ist ja ganz schön tricky. Da sich ja hier in den Java-Versionen eininges getan hat, würde mich interessieren, wie ihr das aktuell macht:

Ich habe eine Datenbank, da liegt nun die Startzeit 08:00:00 drin. In meinem Java-Programm erzeuge ich ein Date-Objekt und lese daraus das Datum mit einer DateFormat-Instanz. Anfangs würde es mir schon reichen, wenn ich diese blöde Angaben aus der Datenbank, also ein String '08:00:00' in ein Date-Objekt verfrachten könnte - aber um den Konstruktor Date(long ts) zu nutzen brauche ich ja den Timestamp von 08:00:00 am aktuellen Tag - wie geht das ?

Später kommen ja einige Berechnungen dazu, dass also Räume zu in der Vergangenheit liegenden Zeitpunkten nicht mehr buchbar sind und das Buchungen nach dem Startzeitpunkt nicht mehr zurückgezogen werden können. Regelt man das dann eher mit Java bevor es an die Datenbank geht oder sollte da bei der Datenbank eine Prüfung gemacht werden, oder bei beiden. Danke für den ein oder anderen Tipp. Bei mir läuft MySQL als Datenbank, aber das sollte ja nicht so wichtig für die Entscheidung sein.
 
innerhalb von Java kannst du evtl. mit einer externen Library wie Joda-Time einfacher vorankommen,
Joda Time - Java date and time API - Home
bei der Kommunikation mit der DB wird aber Date als Parameter nicht zu umgehen sein, läßt sich evtl. leicht aus Joda-Time ermitteln, weiß ich nicht

> aber um den Konstruktor Date(long ts) zu nutzen brauche ich ja den Timestamp von 08:00:00 am aktuellen Tag - wie geht das ?

die Stelle verstehe ich nicht so recht, was ist in der DB gespeichert?
ein Date-Objekt mit Tag, oder nur eine Zeit?,
als String '08:00:00' oder in welcher Form genau?

was spricht gegen DateFormat -> Date?
wenn du dann noch die Tage aus anderer Quelle dazurechnen willst, bietet sich Calendar an,
der Konstruktor Date(long ts) scheint mir hier nicht nüzlich zu sein
 
In der Datenbank ist nur die Zeit gespeichert, also der Datentyp time.

Ich habe eine Tabelle die ich ausgebe und da greif ich mttels ResultSet rs.getString(3) auf den Datenbanktabelleneintrag zu. Später will ich mit diesen etwas rechnen und an anderer Stelle im Programm habe ich schon ein Date-Objekt, das den aktuellen Tag bereits aufgreift aber eben einen anderen Zeitpunkt hat. Nun wollte ich aus der Tagesangabe und dem Zeitpunktstring aus der Datenbankabfrage irgrendwie ein neues Date-Objekt erschaffen. Ich weiß aber eben nicht wie. Eine externe Bibliothek will ich nicht verwenden, ich will das vorher mal mit Java-Bord-Mitteln schaffen und wenn ich das dann kann, dann kann ich mir das Leben leichter machen - wundert mich enorm, dass das irgendwie verzwickt zu sein scheint. Klang erst nach einer 0815-Aufgabe im Programmieralltag.
 
Ach, das ist ja - der Weg geht von DateFormat nach Date. Da spricht also nichts gegen, das habe ich nur nicht gefunden - Danke!
 
rs.getDate(3)
rs.getTime(3)
gibts auch

zum Rechnen alle Beteilgten in Calendar umwandeln, bei einem die Stunden abfragen, beim anderen draufaddieren usw.
 

Neue Themen


Zurück
Oben