首页 > 热点 > 微信 > 正文

微信和qq时间格式模板实例详解

2024-07-22 01:16:48
字体:
来源:转载
供稿:网友

        直接上代码,代码中有注释,大家好好看!

/**   * 将一个时间戳转换成提示性时间字符串,如   * 2分钟内 无显示   * 2分钟-24小时 HH:mm   * 昨天 昨天 HH:mm   * 前天 前天 HH:mm   * 一年内 MM:DD HH:mm   * 去年 去年 MM:DD HH:mm   * 前年 前年 MM:DD HH:mm   * 更远 yyyy:MM:DD HH:mm   * 毫秒计算   * @param charttime   * @return   */  public static String convertChatDetailTimeFormat(long charttime) {     long curTime = System.currentTimeMillis() ;    long time = curTime - charttime;     XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, time + "---时间差" + time/ 1000/ 60 + "分钟");    XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, curTime + "---当前时间" + format(new Date(curTime), FORMAT_LONG_CN_1));    XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, charttime + "---chartTime" + format(new Date(charttime), FORMAT_LONG_CN_1));     if (time < 120 * 1000 && time >= 0) {      return "刚刚";    } else if (time >= 120 *1000 && time < 3600 * 24 * 1000) {       return format(new Date(charttime), FORMAT_HH_MM);     } else if (time >= 3600 * 24 * 1 * 1000 && time < 3600 * 24 * 2 * 1000) {       return "昨天" + format(new Date(charttime), FORMAT_HH_MM);     } else if (time >= 3600 * 24 * 2 * 1000 && time < 3600 * 24 * 3 * 1000) {       return "前天" + format(new Date(charttime), FORMAT_HH_MM);    } else if (time >= 3600 * 24 * 3 * 1000 && time < 3600 * 24 * 365 * 1 * 1000) {       return format(new Date(charttime), FORMAT_MM_DD_HH_MM);    } else if (time >= 3600 * 24 * 365 * 1 * 1000 && time < 3600 * 24 * 365 * 2 * 1000) {       return "去年" + format(new Date(charttime), FORMAT_MM_DD_HH_MM);    } else if (time >= 3600 * 24 * 365 * 2 * 1000 && time < 3600 * 24 * 365 * 3 * 1000) {       return "前年" + format(new Date(charttime), FORMAT_MM_DD_HH_MM);    } else if (time >= 3600 * 24 * 365 * 3 * 1000) {       return format(new Date(charttime), FORMAT_LONG_CN_1);    } else {      return "刚刚";    }  }

     这里就有一个小问题,就是自然日时间跨越实际日时间,有可能出现昨天的时间不显示昨天,而显示为HH:mm,于是测试找上门来,要求改,将2分钟-24小时的条件改为2分钟-今日内。

     那么这里的需求就改为

     * 2分钟内 无显示
     * 2分钟-今日 HH:mm
     * 昨天 昨天 HH:mm
     * 前天 前天 HH:mm
     * 今年 MM:DD HH:mm
     * 去年 去年 MM:DD HH:mm
     * 前年 前年 MM:DD HH:mm
     * 更远 yyyy:MM:DD HH:mm  

  这也不是多大的问题,问题是在跨年的情况该如何,2015-01-01 00:01.001 的前三分钟接受的消息,也就是2014-12-31 该显示为昨天还是去年。如果信息的接收时间比时间还要大,该如何显示。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表