Ist es möglich, die Basis-Millisekunden-Referenzzeit von 1970 bis 2008 in Java (wie JSR-310) zu ändern

StackOverflow https://stackoverflow.com/questions/1471805

Frage

Ich möchte aus dem Jahr 1970 die Basis-Millisekunden-Referenz zu ändern, in Java bis 2008 in der Lage sein, so dass ich Platz in der Datenbank und einzigartige Ids speichern kann.

Am besten mit Joda-Time.

Die kommende JSR-310 in der vermeintlichen Java 7 Release implementiert es.

In der Die diskrete Zeitleiste Abschnitt dieses Link heißt es, dass die Zählung von Millisekunden 1970-2008 geändert hat

http://today.java.net/pub/a/today/2008/09/18/jsr-310-new-java-date-time-api.html


Die einzige andere Option, die ich sehen kann, ist es mathematisch zu implementieren jedes Mal, Ich brauche einen Datensatz zu suchen.

z.

DateTime dt = new DateTime();  
long now = dt.getMillis();

DateTime dt2 = new DateTime(2008, 1, 1, 0, 0, 0, 0);  
long then = dt2.getMillis();

long smallerDate = now - then;

Kleinere Datum wird in der DB gespeichert werden

- Bearbeiten -

Also habe ich falsch verstanden die JSR-310, und es ist nicht möglich.

Es gibt bessere Möglichkeiten um Platz zu sparen und dann Kopfschmerzen von Tausende von Anfrage ist longs zu berechnen.

wollte ich longs als Daten aufzeichnen, weil ich nie weiß, wo ich werde bewegen die DB, vielleicht MySQL => Oracle.

Also ich habe nicht Zeitstempel will, ich wollte nur BigInts.

War es hilfreich?

Lösung

Nein kann man nicht, und es wäre eine schlechte Idee, wenn man könnte. Jeder Zeitstempel in der Datenbank wird den gleichen Raum verwenden, unabhängig davon, wie groß die Zahl ist. (Vorausgesetzt, dass Sie die Nummer als Nummer gelagert und nicht als String oder so etwas.)

Wenn Sie nun wirklich wollen dies, werden Sie es selbst schreiben müssen. D. h die Zeit von Ihrem Zeitstempel subtrahiert, bevor sie in die Datenbank, und fügen Sie die Zeit, um die Zeitstempel setzen, wenn man sie aus zurück. Aber dies bittet um Wartungsprobleme. (In der Tat, mit Zeitstempel anstelle der nativen DATETIME- Datentypen der Datenbank für Probleme zu fragen.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top