質問

私は++アプリunsigned int型(32ビット)データ型CレガシーにJavaの長いデータ型(64ビット)のデータを変換する必要があります。

データなどのデータ損失の心配はunsigned int型の制限をヒットする永劫を取るのLinuxのタイムスタンプ、ではありません。

これらの数字に適用するものを変換任意のアイデア?

事前に感謝します!

P.S。 - データ型の例:

Javaの - 1266336527340

C ++ - 1266336583

これらの両方が同じ日付を生成し、同じ時間(+/-分)約

役に立ちましたか?

解決

Javaのあなたが1000で分割する必要があるので、C ++のコードは、エポックからの秒数を見込んのに対し、エポックからの(ミリ秒)の数を返しますのDate.getTimeその後、切り捨てます:

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

Javaは符号なしだけでなく、符号付き整数を持っているが、これは動作するはずです。

他のヒント

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

私は切り捨ての上に丸め好むが、あなたのビジネスルールのために右であるかを決定する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top