请问Java怎么获得当前时间戳,要int型的不要long的!

得到时间戳我使用的是 System.currentTimeMillis();但是这个返回的是long的,因为我要使用当前时间戳减去从服务器获取来的时间戳进行判断,服务器上的是php的time()得出的时间戳只有10位数,java里面得出的时间戳有13位数,显然是不行的!怎么把long转换成int,或者告诉我怎么获取到当前时间戳能和服务器上获取的时间戳能比较的!

PHP 的 time() 函数返回的结果是 Unix 时间戳,值的单位是秒;

Java 中 System.currentTimeMillis()  返回的结果,值的单位是毫秒。

那么很容易就知道,除以 1000 就行了嘛:

int seconds = System.currentTimeMillis() / 1000;

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-02
进行强制类型转换,但可能会丢失数据。追问

不可以转换,不管是强制转换还是new Long(time).intValue();得出的结果都是负数

第2个回答  2013-07-02
PHP获取得到的时间数值不能跟JAVA获得时间的数值做加减运算,建议你将时间格式弄成yyyy-MM-dd HH:mm:ss的字符串形式传递到JAVA中再转换长long类型的数值进行运算,否则很难不出问题。
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date d = sdf.parse("2012-11-10 10:30:55");
System.out.println(d.getTime());

} catch (ParseException e) {
e.printStackTrace();
}
}
第3个回答  2019-05-28
我也是这样的,现在非常的纠结,怎么破?
第4个回答  2013-07-02
服务器的10位数时间如何得出的。两者如果类型不一样,那能比较的吗追问

php的time()函数得出的!

相似回答