有兩種方式獲取java時間差:java
一.經過Calendar的getTimeInMillis()方法得到日期的毫秒數,而後對毫秒相減取差值,再計算相差的秒數,分鐘,小時,天等測試
import java.text.SimpleDateFormat; import java.util.Calendar; public class Main{ public static void main(String[] args) { Calendar c1 = Calendar.getInstance(); c1.clear(); Calendar c2 = Calendar.getInstance(); c2.clear(); // Set the date for both of the calendar instance c1.set(2020, 0, 1); c2.set(2020, 2, 1); // Print out the dates SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println("Date 1: " + sdf.format(c1.getTime())); System.out.println("Date 2: " + sdf.format(c2.getTime())); // Get the represented date in milliseconds long time1 = c1.getTimeInMillis(); long time2 = c2.getTimeInMillis(); // Calculate difference in milliseconds long diff = time2 - time1; // Difference in seconds long diffSec = diff / 1000; System.out.println("Difference in seconds " + diffSec); // Difference in minutes long diffMin = diff / (60 * 1000); System.out.println("Difference in minutes " + diffMin); // Difference in hours long diffHours = diff / (60 * 60 * 1000); System.out.println("Difference in hours " + diffHours); // Difference in days long diffDays = diff / (24 * 60 * 60 * 1000); System.out.println("Difference in days " + diffDays); } } 輸出以下: Date 1: 2020-01-01 Date 2: 2020-03-01 Difference in seconds 5184000 Difference in minutes 86400 Difference in hours 1440 Difference in days 60 二.經過方式 public class Datetest { public static void main(String ss[]) { SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化時間 String nowtime=d.format(new Date());//按以上格式 將當前時間轉換成字符串 System.out.println("當前時間:"+nowtime); String testtime="2007-09-05 16:07:35";//測試時間 System.out.println("測試時間:"+testtime); try { long result=(d.parse(nowtime).getTime()-d.parse(testtime).getTime())/1000;//當前時間減去測試時間(這個的除以1000獲得秒,相應的60000獲得分,3600000獲得小時) System.out.println("當前時間減去測試時間="+result+"秒"); } catch (ParseException e) { e.printStackTrace(); } } }