我需要的Java数据类型长(64位)数据转换成传统的C ++程序无符号整型(32位)的数据类型。

有关的数据丢失为数据不用担心是Linux的时间戳,这将需要亿万打unsigned int的限制。

任何想法转化为适用于这些数字呢?

提前感谢!

P.S。 - 数据类型的示例:

爪哇 - 1266336527340

C ++ - 1266336583

他们都产生相同的日期,并且大约同时(+/-一分钟)。

有帮助吗?

解决方案

Java的 Date.getTime 返回从历元的毫秒数,而C ++代码期望的的从时元,所以需要通过1000到把数然后截断:

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

Java的只有一个符号整数无符号不,但这应该工作。

其他提示

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

我宁愿舍去了截断,但你必须决定哪些是适合您的业务规则。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top