Java unix時間戳 移除秒毫秒部分

衣舞晨風發表於2017-05-03

方法一:

public static Long getCurrentTime() {
        //毫秒時間轉成分鐘
        double doubleTime = (Math.floor(System.currentTimeMillis() / 60000L));
        //往下取整 1.9=> 1.0
        long floorValue = new Double(doubleTime).longValue();
        return floorValue * 60;
    }

方法二:

 public static Long process(long timestamp) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timestamp);
        calendar.set(Calendar.SECOND, 0);
        return calendar.getTimeInMillis() / 1000;
    }

效率對比測試:

       int num = 10000000;
        for (int j = 0; j < 10; j++) {
            long start = System.currentTimeMillis();
            for (int i = 0; i < num; i++) {
                getCurrentTime();
            }
            long end = System.currentTimeMillis();
            System.out.println("getCurrentTime第" + j + "次:" + (end - start));

            start = System.currentTimeMillis();
            for (int i = 0; i < num; i++) {
                process(start);
            }
            end = System.currentTimeMillis();
            System.out.println("process第" + j + "次:" + (end - start));
        }

對比結果:

getCurrentTime第0次:238
process0次:4431
getCurrentTime第1次:238
process1次:3400
getCurrentTime第2次:214
process2次:3307
getCurrentTime第3次:214
process3次:3310
getCurrentTime第4次:217
process4次:3278
getCurrentTime第5次:216
process5次:3286
getCurrentTime第6次:215
process6次:3332
getCurrentTime第7次:214
process7次:3307
getCurrentTime第8次:214
process8次:3398
getCurrentTime第9次:222
process9次:3389

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章