1. 程式人生 > >Java 獲取30天之前的時間,埋下的坑

Java 獲取30天之前的時間,埋下的坑

專案中要刪除30天之前的資料,因為資料庫中儲存了插入了時間,所以只要根據時間進行過濾就行,但是這個時候出現了一個大坑。
獲取30天之前的時間是這麼寫的,

long time = Calendar.getInstance().getTimeInMillis()
 - 30 * 24 * 60 * 60 * 1000 

看上去一點錯沒有
但是卻忽略了一點,30 * 24 * 60 * 60 * 1000 這個數TM的是個整形,麻蛋已經超過他的最大值溢位,變成負數了。。。。
靠,要加上L,30 * 24 * 60 * 60 * 1000 L

實際上還可以這麼幹

   Calendar calendar = Calendar.getInstance();
      calendar.add(calendar.DATE, -30);
      long time = calendar.getTimeInMillis();

唉 長點心吧