计算时间差, 将long类型的毫秒数, 转成时: 分: 秒
public static void main(String[] args) throws InterruptedException {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
log.info("目标方法运行开始时间:" + LocalDateTime.now().format(dateTimeFormatter));
long startTimeMillis = System.currentTimeMillis();//new Date().toString()
Thread.sleep(100); //模拟目标方法耗时
log.info("目标方法运行结束时间:" + LocalDateTime.now().format(dateTimeFormatter));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
long startTime = new Date().getTime();
Thread.sleep(100);
long endTime = new Date().getTime();
long costMillis2 = endTime - startTime;
String costSeconds2 = simpleDateFormat.format(costMillis2);
//如果不设置时区, 输出是 耗时08:00:00.101秒 有8小时的时差
log.info("耗时{}秒", costSeconds2);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
String costSeconds3 = simpleDateFormat.format(costMillis2);
log.info("耗时{}秒", costSeconds3); //耗时00:00:00.101秒
DecimalFormat decimalFormat = new DecimalFormat("0.000");
double costSeconds4 = (costMillis2 * 1.0) / 1000;
String divide = decimalFormat.format(costSeconds4);
log.info("接口耗时{}秒", divide); //接口耗时0.101秒
}
Java除法 使用 DecimalFormat("0.00") 保留2位小数
public static void main(String[] args) {
int a = 1;
int b = 3;
DecimalFormat decimalFormat = new DecimalFormat("0.00");
String divide = decimalFormat.format((a * 1.0) / b);
System.out.println(divide); //0.33
int a = 1;
int b = 3;
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
String divide = decimalFormat.format((float) a / (float) b);
System.out.println(divide); //33.33%
BigDecimal a = new BigDecimal("1");
BigDecimal b = new BigDecimal("3");
BigDecimal divide = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println(divide.toString()); 0.33
}