java 日期差 实现(×分钟前)功能

来源:互联网 发布:手机无线电软件 编辑:程序博客网 时间:2024/04/30 00:51

今天经理让写一个,根据信息上传时间,显示,?分钟前,?小时前,?天前,类似qq空间发表的心情日期;

用了一个自我感觉笨的方法,不过还是实现了,呵呵呵

    public static String getCompareTime(String filetime){
     //返回的字符串
    String retStr ="";
    //传入的日期是2008-9-12等,不作处理
    if(filetime.indexOf("-")>0){
     retStr =filetime;
    }
    else{
     try{
      DateFormat day = new SimpleDateFormat("dd");
      DateFormat hour = new SimpleDateFormat("HH");
      DateFormat minute = new SimpleDateFormat("mm");
         Date today = new Date();
         //得到当前时间的日,小时,分钟
         int nowDay =Integer.parseInt(day.format(today));
         int nowHour =Integer.parseInt(hour.format(today));
         int nowMinute =Integer.parseInt(minute.format(today));
//         System.out.println("nowDay:"+nowDay);
//         System.out.println("nowDay:"+nowHour);
//         System.out.println("nowDay:"+nowMinute);
         //格式化传入的字符串
      DateFormat df = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
         Date dataTime = df.parse(filetime);  
         //得到传入时间的日,小时,分钟
         int dataDay =Integer.parseInt(day.format(dataTime));
         int dataHour =Integer.parseInt(hour.format(dataTime));
         int dataMinute =Integer.parseInt(minute.format(dataTime));
//         System.out.println("aaaDay:"+dataDay);
//         System.out.println("nowDay:"+dataHour);
//         System.out.println("nowDay:"+dataMinute);
 //        System.out.println(diff);
         int days =nowDay - dataDay;
            if(days ==1){
           
              retStr="一天前";
            }
            else if(days ==2){
           
             retStr="两天前";
            }
            else if(days ==3){
           
             retStr="三天前";
            }
            else if(days > 3){
              retStr=filetime;
            }
            else if(days<1){
              int hours =nowHour - dataHour;
              if(hours>=1){
           
               retStr=hours+"小时前";
              }else{
               int minutes =nowMinute - dataMinute;
               
               retStr=minutes+"分钟前";
              }
            }
     }catch(Exception e){
      e.printStackTrace();
     }
    }

//打印返回的字符串

    System.out.println("DateTIme:::::::::::::::"+retStr);
       return retStr;
    }

测试一下,呵呵

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  DateTime.getCompareTime("10/04/21 14:05:00");
 }

我现在的时间是 10/04/21 14:26:00

运行结果:

DateTIme:::::::::::::::21分钟前

 

 

成功,呵呵

 

原创粉丝点击