想问下:就像这种,几小时前,几分钟前,几天前的时间格式是怎么样的一个规则?这种时间格式 学名叫做什么,经理让实现一个这样的功能,但是不知道是什么样的规则,请大家帮帮我,谢谢,我也没有多少分,全给大家了。

解决方案 »

  1.   

    Calendar c = new GregorianCalendar();Date current = new Date();
    current.before(c.getTime())用这个做判断。试一下。条件自己去设置。
      

  2.   

    不知这个是不是你需要的
    PrettyTime
    Convert elapsed timestamps, like, “in 3 minutes!”
    http://ocpsoft.com/prettytime/#docs
      

  3.   

    比如csdn,就用发帖时间和现在时间进行比较呗,楼主是这意思?
      

  4.   

    Calendar 日历。不过你说的这个需求还是不清,你完全可以自己定一个这样的对象class TheTime{


            //当时的时间戳
            private Long times = null;
            
            //timesGetter
            //timesSetter
    public String toString(){
    return new SimpleDateFormat("yyyy-MM-dd").format(new Date(times));
    }

    public String toString(String formatStr){
    return new SimpleDateFormat(formatStr).format(new Date(times));
    }

    }
    你可以往这个类里面再添加一些需要的属性,然后再添加一些 需要的方法就差不多了完全可以用Date直接写,不过用的地方多了封装一下就比较方便。
      

  5.   

    lz去查JAVA API的Calendar类。里面很全的。 
      

  6.   

    /**
     * 获取距离现在的时间
     */
    public String getMinutes (){
    long time = times - new Date().getTime();//time 单位是 毫秒
    String res = null;
    //转化成天数
    //先判断是不是小于 60 * 60 * 1000  也就是 小于1小时,那么显示 : **分钟前
    if(time < 60 * 60 * 1000){
    res =  (time / 1000 / 60 ) + "分钟前";
    }
    //如果大于等于1小时 小于等于一天,那么显示 : **小时前
    else if(time >= 60 * 60 * 1000 && time < 24 * 60 * 60 * 1000){
    res =  (time / 1000 / 60 / 60 ) + "小时前";
    }
    //如果大于等于1小时 小于等于一天,那么显示 : **小时前
    else if(time >= 24 * 60 * 60 * 1000){
    res =  (time / 1000 / 60 / 60 /24 ) + "天前";
    }
    //如果时间不明确或者发帖不足一分钟 ,则不显示
    else{
    res = "";
    }

    return res;
    }
    这里的 分钟 小时 和 天 的除法考虑的不全,只是简单的 把思路说一下啊一定要注意 除法的精确性带来的结果的不精确如果要求不是很严格的时间显示的话,那么上面那样写偏移量不大但是要是精确现实的话 就必须自己再去加一些 类似四舍五入的判断了