1. 程式人生 > >測試兩個時間戳長整型(Long)資料相減的問題

測試兩個時間戳長整型(Long)資料相減的問題

    public void test() {         long to = System.currentTimeMillis();         long from =  to - 30*24*3600*1000L;  ////長整型減長整型          long ft =  to - 30*24*3600*1000;  //30*24*3600*1000 == 2592000000,會因為越界,超過了int位元組的範圍(int範圍位 -2147483648~2147483647),會變成一個負數 -1702967296         int t = (int)to / 1000;  //長整型先壓縮變成了負數,再去除10000,壓縮有可能正有可能負,但如果低資料型別裝不下則會出現錯誤。         long f = from / 1000;  //先壓縮         int dd = (int)(from / 1000);  //先將long整型壓縮了,再強轉到int,這是int資料型別可以裝下,故準確         System.out.println(to);         System.out.println(from);         System.out.println(ft);         System.out.println(t);         System.out.println((int)f);         System.out.println(dd);         System.out.println(Integer.MAX_VALUE);  //2147483647         System.out.println(30*24*3600*1000);     }

//時間戳是13位