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

本文介绍了一种方法,通过简单的步骤来识别输入日期是当前日期、昨天、当年内还是往年。该方法涉及字符串到日期的转换、日期比较及格式化输出。通过解析日期字符串并判断其所属时间范围,可以清晰地展示日期信息,适用于各种日期相关应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

今天 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;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值