Java 中long类型转换成为int类型时可能会出错的地方
生活随笔
收集整理的這篇文章主要介紹了
Java 中long类型转换成为int类型时可能会出错的地方
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?那計算兩個日期之間間隔的天數為例來說明這個問題。
?
下面是計算日期間隔天數的簡單算法(主要出錯的地方為紅色標注的地方):
public int getDay(String startDate, String endDate) {int m_intervalday = 0;SimpleDateFormat m_simpledateformat = new SimpleDateFormat("yyyy-MM-dd");try {// 創建兩個Date對象Date date1 = m_simpledateformat.parse(startDate);Date date2 = m_simpledateformat.parse(endDate);long m_intervalday1 = date2.getTime() - date1.getTime();// 計算所得為微秒數m_intervalday = (int) (m_intervalday1 / 1000 / 60 / 60 / 24);// 計算所得的天數} catch (ParseException e) {e.printStackTrace();}return m_intervalday;}當計算出的間隔時間(毫秒為單位)沒有超出int類型的長度時計算出的結果是正常的,但是當間隔時間超出int類型的長度時就會出現問題。
具體問題的體現為:獲取到的轉換結果會是一個負數。
總結
以上是生活随笔為你收集整理的Java 中long类型转换成为int类型时可能会出错的地方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态编译MySQL plugin
- 下一篇: Java之JVM调优案例分析与实战(1)