Java计算年月日时分秒时间差(两个时间相减)

时间:2025-03-10 08:45:45
  •   //测试主方法
  •  public static void main(String[] args) {
  •          Date currentTime = ("2004-03-26 13:31:40");   //当前系统时间   
  •          Date firstTime = ("2004-01-02 11:30:24");     //查询的数据时间
  •          String str=getTime(currentTime ,firstTime );
  •          ("获取的年月日时分秒时间差为:"+str);
  •   }
  •   //获取时间差方法    
  •   public static String getTime(Date currentTime,Date firstTime){
  •           long diff = () - ();//这样得到的差值是微秒级别
  •           Calendar  currentTimes =dataToCalendar(currentTime);//当前系统时间转Calendar类型
  •           Calendar  firstTimes =dataToCalendar(firstTime);//查询的数据时间Calendar类型
  •           int year = () - ();//获取年
  •           int month = () - ();
  •           int day = (Calendar.DAY_OF_MONTH) - (Calendar.DAY_OF_MONTH); 
  •           if (day < 0) {
  •              month -= 1;
  •              (, -1);
  •              day = day + (Calendar.DAY_OF_MONTH);//获取日
  •           }
  •           if (month < 0) {
  •              month = (month + 12) % 12;//获取月
  •              year--;
  •           }      
  •           long days = diff / (1000 * 60 * 60 * 24);           
  •           long hours = (diff-days*(1000 * 60 * 60 * 24))/(100060 * 60); //获取时 
  •           long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(100060 * 60))/(100060);  //获取分钟
  •           long s=(diff/1000-days*24*60*60-hours*60*60-minutes*60);//获取秒
  •           String CountTime=""+"year"+"年"+month+"月"+day+"天"+hours+"小时"+minutes+"分"+s+"秒";
  •           return CountTime;
  •     }  
  •     //Date类型转Calendar类型
  •     public static Calendar dataToCalendar(Date date) {
  •           Calendar calendar = ();
  •           (date);
  •           return calendar;
  •     }