Frage

Ich brauche zu konvertieren Java lange Datentyp (64-Bit) von Daten in Legacy-c ++ app unsigned int (32-Bit) Datentyp.

Keine Sorgen über den Datenverlust als Daten sind Linux Zeitstempel, die Äonen dauern würde unsigned int Limit zu treffen.

Jede Idee, was Transformation auf diese Zahlen anwenden?

Vielen Dank im Voraus!

P. S. - Datentypen Beispiel:

Java - 1266336527340

C ++ - 1266336583

Sie beiden Produkte selber Tag und etwa gleiche Zeit (+/- eine Minute).

War es hilfreich?

Lösung

Java date.getTime gibt die Anzahl der Millisekunden aus der Epoche, während der C ++ Code erwartet, dass die Anzahl der Sekunden aus der Epoche, so dass Sie von 1000 bis divide brauchen dann truncate:

int timestampAsInt = (int)(timestampAsLong / 1000);

Java hat nur eine signierte ganze Zahl nicht nicht unterzeichnet, aber das sollte funktionieren.

Andere Tipps

long javaTime = someDate.getTime();
int cTime = (int)((javaTime + 500) / 1000);

Ich ziehe über Verkürzungs Runden, aber Sie müssen entscheiden, welche die richtige für Ihre Geschäftsregeln ist.

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