Android——客户端日期定制显示

来源:互联网 发布:数据采集与处理官网 编辑:程序博客网 时间:2024/05/23 11:12

效果:对后来传入的日期进行处理,例子显示如下

今天 08:08:54  -----------------------当天
昨天 08:08:54------------------------ 昨天
 08-20 8:08:54-----------------------当年
2014-08-20 8:08:54----------------往年


思路:

1、将字符串转为Data类型

2、判断是否是本年——>当年和往年两种情况

3、当年——>判断是否当月——>今天+昨天两种情况

      当年——>其他月份


运用的java知识点:

1、String——>Data

2、Date比较

3、Date格式化输出,即Date——>String


具体实现:

 public static String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";// 定义标准日期格式 used in parse    public static String DATE_PATTERN_COMMON = "MM-dd HH:mm:ss";// 定义标准日期格式 used in parse    private static String TIME_PATTERN = "HH:mm:ss";// 定义标准时间格式    public  String getDateString(String dateString) {        String returnString = "";        Date date = formatString(dateString, DATE_PATTERN); //string->date        Date nowDate = new Date();//当天        if (date.getYear() == nowDate.getYear()) {//今年            if (date.getMonth() == nowDate.getMonth()) {                if (date.getDay() == nowDate.getDay()) {//当天                    returnString = "今天 " + formatDate(date, TIME_PATTERN);                } else if (date.getDay() + 1 == nowDate.getDay()) {//昨天                    returnString = "昨天 " + formatDate(date, TIME_PATTERN);                }            } else {//普通日期                returnString = formatDate(date, DATE_PATTERN_COMMON);            }        } else {//往年            returnString = formatDate(date, DATE_PATTERN);        }        return returnString;    }    /**     * 把一个日期,按照某种格式 格式化输出     *     * @param date    日期对象     * @param pattern 格式模型     * @return 返回字符串类型     */    public  String formatDate(Date date, String pattern) {        if (date == null) {            return null;        } else {            SimpleDateFormat sdf = new SimpleDateFormat(pattern);            return sdf.format(date);        }    }    /**     * 将字符串类型的时间转换为Date类型     *     * @param str     时间字符串     * @param pattern 格式     * @return 返回Date类型     */    public static Date formatString(String str, String pattern) {        SimpleDateFormat sdf = new SimpleDateFormat(pattern);        Date time = null;        try {            time = sdf.parse(str);        } catch (ParseException e) {            e.printStackTrace();        }        return time;    }


0 0