Addition von Timestamps

Status
Nicht offen für weitere Antworten.

TJ2805

Mitglied
Morgen zusammen,

ich hoffe ihr könnt mir bei meinem Problem weiterhelfen.
ich muss Montage-Zeiten addieren, die als Timestamp aus der Datenbank kommen.

wenn ich jetzt in meine Programm die ersten beiden Zeiten (00:01:00 und 00:13:00 [hh:mm:ss]) addiere, kommt als Ergebnis 23:14:00 raus. :shock:

ich mach wohl irgendwas falsch , komme aber beim besten Willen nicht auf den Trichter was.
 

Murray

Top Contributor
Ein Timestamp steht doch normalerweise für einen Zeitpunkt, nicht für eine Zeitdauer; insofern ist die Addition zweier Timestamps eigentlich unsinnig (was soll denn bei der Berechnung heute, 12:00:51 + morgen, 13:12:00 herauskommen?).
Wie addierst Du die Werte denn? In etwa so:
Code:
Timpestamp result = new Timestamp( timestamp1.getTime() + timestamp2.getTime());
Dann geht natürlich die Datumskomponente ein, und Du bekommst einen Zeitpunkt ziemlich weit in der Zukunft.

Wenn es überhaupt klappen kann, dann nur, indem Du Dir mit Calendars Stunden, Minuten und Sekunden der beiden Timestamps abgreifst und nur diese Werte addierst.
 

TJ2805

Mitglied
danke für die Antwort Murray,
die Addition ist die, die du beschrieben hast
Code:
Timpestamp result = new Timestamp( timestamp1.getTime() + timestamp2.getTime());

Die Werte der Timestamps sind "01.01.1970 00:01:00" + "01.01.1970 00:13:00" = "31.12.1969 23:14:00"

in der Zwischenzeit hab ich das ganze auch mit Time probiert, das Ergebnis war das gleiche.
bin auch noch dabei, ein paar andere Sachen auszuprobieren.
 
S

SlaterB

Gast
schaue dir jeweils die getTime()-long-Werte an,
teile durch 3600 um Stunden zu erhalten,

das müsste ja irgendwas um 100000 + 1300000 = 1400000 oder so sein
(oder in anderen Dimensionen)

wenn nun 1300000 = 13.00 ist
und 1400000 != 14.00,

dann liegt es nicht an der Addition sondern z.B. an Zeitzonen oder Formatierung der Ausgabe
 
G

Gahast

Gast
Moin!

Addition is wohl richtig, nur die Zeitzone is wohl die Falsche.

Je nachdem was verwendet wird, einfach mal die Zeitzone verändern:

Code:
calenderObjekt.setTimeZone(TimeZone.getTimeZone("CMT"));

Gruß,
GastlicherGehtsKaumNoch! ;)
 

TJ2805

Mitglied
danke, die Zeitzone war der richtige Tipp. bin zwar weiterhin noch am ausprobieren, aber dabei schon einen guten Schritt weiter.
 

RaoulDuke

Bekanntes Mitglied
Bei Intervallen würde ich generell nicht mit Timestamps arbeiten sondern einen int oder long Wert nehmen und das Intervall damit in Sekunden speichern.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben