我正在尝试生成EPOCH值。我使用以下内容:
int currentEpoch = ((int) System.currentTimeMillis()) / 1000;
Log.v("EPOCH", String.valueOf(currentEpoch));
以下是我的日志:
为什么我的Epoch值为负?
答案 0 :(得分:1)
简而言之,System.currentTimeMillis()
返回长的原因。 int不足以存储自1970年以来的毫秒数。因为它试图表示一个大于它可以容纳的值,所以该值会回绕并变为负值。
答案 1 :(得分:1)
System.currentTimeMillis()
返回long
值。当您将其强制转换为int
时,该值会溢出并为您提供负数。
试试
long currentEpoch = System.currentTimeMillis() / 1000;
Log.v("EPOCH", String.valueOf(currentEpoch));`