我撞到了砖墙。
我正在从服务器(由我创建的关卡创建者制作)下载加密的关卡数据。
级别数据长时间使用Java存储数据的最新更新版本。
现在要更新级别,我下载了可用级别的列表以及它们最后一次使用php在文件上进行修改的时间。
许多人会说我必须将时间存储在其他地方,例如json。这不是一个选择。
我得到以下结果:
Fri May 08 23:05:24 CEST 2015 | timeStampJava: 1431119124273
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:28 CEST 2015 | timeStampJava: 1431119128871
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:32 CEST 2015 | timeStampJava: 1431119132288
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:35 CEST 2015 | timeStampJava: 1431119135289
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
OLLY:LOG: ---
Fri May 08 23:05:38 CEST 2015 | timeStampJava: 1431119138807
Sat Jan 17 14:31:58 CET 1970 | fileTimeStampPHP(filemtime): 1431118989
我正在尝试使用以下两者进行比较:
if(serverLevelInfo.last_updated > localLevelStorage.getLastUpdated())
问题是我是否垂头丧气
phpTimeStamp > (int)javaTimeStamp
结果完全不正确。
现在做什么?
编辑1
尝试的建议:
//TODO Problem PHP int timestamp to java long timestamp.
PolyUtils.log((long)(serverLevelInfo.last_updated * 1000));
PolyUtils.log(localLevelStorage.getLastUpdated());
PolyUtils.log("---");
结果(错误)
OLLY:LOG: 894879432
OLLY:LOG: 1431119124273
OLLY:LOG: ---
OLLY:LOG: 894879432
OLLY:LOG: 1431119128871
OLLY:LOG: ---
OLLY:LOG: 896347432
OLLY:LOG: 1431119132288
OLLY:LOG: ---
OLLY:LOG: 894879432
OLLY:LOG: 1431119135289
OLLY:LOG: ---
OLLY:LOG: 894879432
OLLY:LOG: 1431119138807
OLLY:LOG: ---
不幸的是,唯一的解决方案是您必须长时间丧失JAVA的准确性。这是因为PHP无法产生long(32位标量var)。
if(serverLevelInfo.last_updated > (int)(localLevelStorage.getLastUpdated() / 1000))
请确保在将长度拉长后才将int转换为int,否则可能会导致错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句