long 转int java_java long转换为int 类型 注意事项

public static int subDateFmtStr(String start, String end) {

if (start == null || end == null) {

return 0;

}

Date starttime = parseYMDHHmmssString(start);

Date endtime = parseYMDHHmmssString(end);

if (starttime == endtime) {

return 0;

}

long temp = endtime.getTime() - starttime.getTime();

System.out.println("temp:"+temp);

/**

* 注意:

* long 是64位,int 是32位。

* 当使用强制类型把long转换为int类型有可能会出现负数问题,

* 而Long.MAX_VALUE在Java中的值是2的63次方,即011111111111111(63个1)

* 最前面的是符号位 0为正数,1为负数,int截取了后面的32位数 为111111111(32个1)

* 这个值就是-1,因为负数是用补码表示的111111111(32个1) 正好就是-1的补码,所以 最终的结果就是-1.

* 例如:

* subDateFmtStr("20141229 16:21:58","20150210 11:43:28")

*

*/

//return (int)temp;

if (temp > 0) {

//正数

return 1;

}else if(temp ==0 ){

return 0;

}else {

//负数 取它的绝对值

return -1;

}

}

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页