import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * Created by xyz on 2017/1/9. */public class DateTime {    private int hour;    private int day;    private Date date;    private DateFormat df;    private String pointText;    private Long time;    private Long now;//    privatepublic DateTime(){    hour=60*60*1000;    day=(60*60*24)*1000;    time=28800L;    now=new Date().getTime();    pointText="1970-01-01";    }    //获得当天0点时间    public static Long getTimesmorning(){        Calendar cal = Calendar.getInstance();        cal.set(Calendar.HOUR_OF_DAY, 0);        cal.set(Calendar.SECOND, 0);        cal.set(Calendar.MINUTE, 0);        cal.set(Calendar.MILLISECOND, 0);        return (Long) cal.getTimeInMillis();    }    //获取星期几    public static String getWeekOfDate(Date dt) {        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};        Calendar cal = Calendar.getInstance();        cal.setTime(dt);        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;        if (w < 0)            w = 0;        return weekDays[w];    }    //获取时间点    public String getTimePoint(Long time) {        //现在时间        now = new Date().getTime();        //时间点比当天零点早        if (time <= now&&time!=null) {            date = new Date(time);            if (time < getTimesmorning()) {                if (time >= getTimesmorning() - day) {//比昨天零点晚                    pointText ="昨天";                    return pointText;                } else {//比昨天零点早                    if (time >= getTimesmorning() - 6 * day) {//比七天前的零点晚,显示星期几                        return getWeekOfDate(date);                    } else {//显示具体日期                        df = new SimpleDateFormat("yyyy-MM-dd");                        pointText = df.format(date);                        return pointText;                    }                }            } else {//无日期时间,当天内具体时间                df = new SimpleDateFormat("HH:mm");                pointText = df.format(date);                return pointText;            }        }        return pointText;    }}


一般外部调用getTimePoint(Long time) 传入Long 型时间戳即可

仿照微信的时间戳显示规则

当天的显示无日期具体时间;

昨天的显示为昨天;

比昨天早且在过去一周内的,显示星期几;

超过一周的时间,显示带有年月日的日期。

更多相关文章

  1. android 时间戳与日期格式的互相转换 以及 自定义选择器
  2. 两种方式使用android时间和日期控件
  3. Android 时间 日期 时区
  4. Android 自定义 Toast 显示时间
  5. (安卓/android)dex2oat与应用安装时间优化
  6. android 时间同步
  7. Android 抢购功能(时间戳之间的倒计时)
  8. [置顶] 如何使Android应用程序获取系统权限来修改系统时间

随机推荐

  1. android中下载文件到sdcard和进度条小结
  2. Android(安卓)ImageView图片显示点击背景
  3. Android(安卓)支持网络协议以及简单用法
  4. android开发资料(DEVELOPER.ANDROID.COM/
  5. xmlns:android的作用
  6. Android(安卓)Studio 导入so
  7. 利用BLCR加快android的启动过程
  8. Android(安卓)修改开机动画(bootanimation
  9. [实战示例] 带您深入探讨 Android(安卓)
  10. 获取apk信息工具(android SDK的aapt工具)