Timestamp in Java – Eine Herausforderung
Juli 30th, 2007 14:20 Uhr von
Ronald
Einen Timestamp in Java zu erzeugen ist gar nicht so schwer wie ich bisher angenommen hatte. Nachdem dieser Beitrag hier schon seit Anbeginn der Menschheit dieses Blogs hier herumliegt, hat vor wenigen Tagen ein Besucher seinen Unmut zum Ausdruck gebracht und einen Kommentar darüber erstellt, dass der Beitrag vollkommen unsinnig sei. Da er den Kommentar leider anonym verfasst hat, werde ich ihn nicht veröffentlichen und im Detail darauf eingehen. Jedenfalls hatte er mit einigen seiner Aussagen recht und meine ursprünglich verfasste Methode, um in Java einen Timestamp zu erzeugen, als schlecht bzw. unsinnig (ganz unsinnig ist sie nun auch nicht, immerhin liefert sie was man will) entlarvt. Wie dem auch sei schickte er mir auch gleich eine einfachere Lösung, die natürlich um ein vielfaches effektiver ist und ohne zusätzliche Packages auskommt.
Hier nun endlich die Auflösung:
Das ist alles! Vielen Dank für die Belehrung. Für’s nächste Mal würde ich mir allerdings wünschen, dass derjenige nicht nur anonym den schlauen Kerl raushängen lässt, sondern auch “namentlich” dazu steht.
Zu meiner Verteidigung möchte ich noch anmerken, dass ich damals, als ich den Timestamp brauchte, über die Suchmachschinen auch nur zu dem “ursprünglichen” Ergebnis gekommen bin.
Um in PHP das aktuelle Datum als Timestamp (in diesem Fall den “gemeinen” Unix-Timestamp) zu erzeugen, benötigt man einen einzigen “billigen” Aufruf:
In Java ist das schon etwas komplizierter…
Das kann man auch noch mal komprimieren und sieht dann so aus:
Einfach, oder?!
Geschrieben in Java |
5 Kommentare »







April 24th, 2008 um 12:02
NIce, danke!!!!
Juni 3rd, 2008 um 09:50
ich glaube du hast da einen kleinen (denk)fehler in deiner aussage…
denn der code
System.out.println(System.currentTimeMillis() / 1000);
Timestamp timestamp = new Timestamp(new Date().getTime());
System.out.println(timestamp);
erzeug die ausgabe:
1212478120
2008-06-03 09:28:40.734
des weiteren wenn man ein timestamp im datenbankbereich benutzt gibt es auch einige unterschiede in der DBMS-interpretation…
wie gesagt, die frage ist immer was möchte ich mit dem timestamp anstellen. denn in vielen bereich ist es eine funktion die man besser durch Date().getTime() oder vergleichbarem ersetzen sollte. denn das arbeiten mit werten vom type long kann jede software, aber mit datumsangaben da wÀre ich vorsichtig… Auch wenn es merkwÃŒrdig klingt aber datumsarithmetik ist eine königsdisziplin der mathematisch programmierung die nicht jeder sauber beherrscht.
mfg
the head of buntklicken.de and Maintainer of R4DIUM-Project
PS: wenn jetzt wer glaubt ich bin der unbekannte, nein ich bin es nicht.
Juni 3rd, 2008 um 10:03
hups,
habe ich vergessen. dein “alter” code ist doch nicht falsch?!?.
denn der unbekannte, der dir diesen vorschlag gemacht hat liegt falsch. das objekt vom type timestamp ist nicht gleich vom type date. auch wenn die methoden das fast gleich sind (durch vererbungen bedingt). Sind es unterschiedlich klassen/objekte.
einfacher test versuche mal in eine mySQL spalte die den type timstamp hat ein date-objekt zuschreiben
sicherlich, wenn man mit “umwandlungen” bzw. cast usw. arbeitet geht es. aber das ist ja nicht der sinn von OO-Proggen
nebenbei:
dein antispam-script gefällt mir, wo hast du das her bzw. wie nennt sich das script? auch wenn es simpel mit einem robot zu “knacken” ist, ist die idee mit dem rechnen einfach genial und lustig. halt was völlig neues(für mich).
Januar 27th, 2009 um 12:21
Nichts für ungut aber wer die Zeile
.
“System.out.println(new java.sql.Timestamp(new java.util.Date().getTime()));”
als zu kompliziert empfindet, sollte vielleicht doch lieber bei PHP bleiben
Java bietet dir halt für jede Anforderung Lösungen, anstatt dir ne 0815-Antwort zu geben.
Mai 7th, 2009 um 10:47
Irgendwie stifftet dieser beitrag mir mehr Verwirrung als aufklärung, aber das Thema Timestamp ist eh verwirrend. Welchen Timestamp meinst du denn
Unix Timestamp ( Sekunden seit 1970) oder MySQL Timestamp (yyyymmddhhiiss) ?
vermutlich den unix timestamp da millisekunden …