在处理Long 型时间值的计算过程中,被JAVA 狠狠的坑了一次,如下的程序:
long thisTime = 1380000000000; long monthAgo = thisTime - 30 * 24 * 60 * 60 * 1000;
本以为,JAVA 会将后面计算的结果转换成 long 值后再与前面的计算,调试过程中发现,java 是先计算后面的数值,为 int 类型,结果超过了 int 类型,被截断了,然后再将这个截断的数值转换成 long 型,再与前面的 thisTime 计算。
坑死了,这样计算出来的结果能对么,如果在计算的某一步中,觉得值会超过 long ,那么就需要在这一步之前将计算结果转为 long 型后再计算,因此修改后代码为:
long monthAgo = thisTime - 30 * 24 * 60 * 60 * 1000L;
这样结果就正确了。
相关推荐
主键是Long型的id生成方法,Java实现.snowflake算法.
java生成唯一索引,Long型,区别uuid
java-long型与Date型时间转换工具
long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 long型转换为int型 ...
1.获取系统时间 + 随机数,但是由于系统时间前几位是相同的,所以截取几位数字; 2.获取随机数,math的方法,截取几位数字; 3.判重校验
一个long型与Date型时间转换工具,适合测试人员使用,内附JAVA代码
1.自动生成id策略. 2.当多线程进入java类,自动生成id.生成规则,根据毫秒然后+3个随机数.
最近自己开发时需要一个16位纯数字的UUIDUtil,所以封装了一个纯数字16位的UUIDUtil,返回Long型UUid,希望可以帮到大家!
long转int 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一、强制类型转换 [java] long ll = ...
自己写的一个date与long型转换工具,输入时间自动转换为对应的long型
当数值超过long位时的加减乘算法,表达式自动运算 如(3+2)/2输入此字符串得到值
主要给大家介绍了Java中long类型与Long类型区别和大小比较的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
将Long类型数据转换为科学计数法,使用的原生的写法,无需任何工具插件,编写环境支持JDK7/8及以上
java long:长整型
Java_IPv4转换_ip2long_long2IP,与php/java/javascript互相兼容
细数java中Long与Integer比较容易犯的错误总结.docx
主要讲解Java中基本数据类型,java long 类型与其java int类型的转换的几种方法,希望能给大家做一个参考
存储时间打算用时间戳来存储,打算用long类型来代表时间戳,这篇文章主要介绍了深入理解java long 存储时间戳,非常具有实用价值,需要的朋友可以参考下
文件为压缩包,包括多个java识别图片文字的项目,国内网站上资料比较少,项目都整理出了测试类及说明,都包含着源代码及jar包、安装包、训练库。希望用得到的人少走弯路,资源都精心整理测试过,高分是必须的。 java...
Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....