如何在android中使用日历显示日期和时间

如何在android中使用日历显示日期和时间,android,Android,如何在android中使用日历显示日期和时间。就像两天前,一个月前。我试过不用日历。但如果我们使用日历,我们可以避免一个月28天和30天的问题。如何做到这一点?请检查下面的代码,您可能会发现它很有用 public static String getAgoTime(String p_date, SimpleDateFormat p_dateFormat) throws Throwable { String message_Time = ""; // SimpleDa

如何在android中使用日历显示日期和时间。就像两天前,一个月前。我试过不用日历。但如果我们使用日历,我们可以避免一个月28天和30天的问题。如何做到这一点?

请检查下面的代码,您可能会发现它很有用

public static String getAgoTime(String p_date, SimpleDateFormat p_dateFormat) throws Throwable {
        String message_Time = "";
        // SimpleDateFormat m_dateFormater = new SimpleDateFormat(p_dateFormat);
        Date m_currentdate = Calendar.getInstance().getTime();
        String m_today = p_dateFormat.format(m_currentdate);
        Date showTime = p_dateFormat.parse(p_date);
        Date server_date = new SimpleDateFormat(Constants.SHOW_DATE_FORMAT).parse(p_date);
        Date today_date = new SimpleDateFormat(Constants.SHOW_DATE_FORMAT).parse(m_today);

        long m_diff = today_date.getTime() - server_date.getTime();

        int hours = (int) (m_diff / (1000 * 60 * 60));
        int mins = (int) ((m_diff / (1000 * 60)) % 60);
        if (server_date.compareTo(today_date) == 0) {
/*
            if (hours == 0) {
                message_Time = String.valueOf(mins + " mins ago");
            } else if (hours > 1 && hours < 23) {
                message_Time = new SimpleDateFormat("hh:mm a").format(m_date1);
            }
*/
            message_Time = new SimpleDateFormat(Constants.SHOW_TIME_FORMAT).format(showTime);

        } else if (server_date.compareTo(today_date) < 0) {
            message_Time = new SimpleDateFormat(Constants.SHOW_INDEX_DATE).format(server_date);
        }
        return message_Time;
    }
public静态字符串getAgoTime(字符串p_date,simpleDataFormat p_dateFormat)抛出可丢弃的{
字符串消息_Time=“”;
//SimpleDataFormat m_dateFormat=新的SimpleDataFormat(p_dateFormat);
Date m_currentdate=Calendar.getInstance().getTime();
字符串m_today=p_dateFormat.format(m_currentdate);
dateshowtime=p_dateFormat.parse(p_Date);
Date server_Date=新的SimpleDateFormat(Constants.SHOW_Date_FORMAT).parse(p_Date);
Date today\u Date=新的SimpleDateFormat(Constants.SHOW\u Date\u FORMAT).parse(m\u today);
long m_diff=today_date.getTime()-server_date.getTime();
整小时=(整小时)(m_diff/(1000*60*60));
整数分钟=(整数)((m_diff/(1000*60))%60);
如果(服务器\u日期.compareTo(今天\u日期)==0){
/*
如果(小时==0){
message_Time=String.valueOf(分钟+“分钟前”);
}否则如果(小时数>1和小时数<23){
消息时间=新的SimpleDateFormat(“hh:mm a”)。格式(m\U日期1);
}
*/
message\u Time=新的SimpleDataFormat(常量.SHOW\u Time\u格式).FORMAT(showTime);
}else if(服务器日期。与(今天日期)相比<0){
消息时间=新的SimpleDataFormat(常数。显示索引日期)。格式(服务器日期);
}
返回消息时间;
}

遵循以下3个简单步骤: 1.保存活动发生的时间/日期(要显示$month或$days之前的活动) 2.计算当前时间/日期。 3.在当前时间和上次保存的时间之间取一个差值,然后将其用于显示所需的结果

String dateStart = "01/14/2017 10:20:18";
        String dateStop = "01/15/2018 11:41:38";

        //HH converts hour in 24 hours format (0-23), day calculation
        SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

        Date d1 = null;
        Date d2 = null;

        try {
            d1 = format.parse(dateStart);
            d2 = format.parse(dateStop);

            //in milliseconds
            long diff = d2.getTime() - d1.getTime();

            long diffSeconds = diff / 1000 % 60;
            long diffMinutes = diff / (60 * 1000) % 60;
            long diffHours = diff / (60 * 60 * 1000) % 24;
            long diffDays = diff / (24 * 60 * 60 * 1000);

            System.out.print(diffDays + " days, ");
            System.out.print(diffHours + " hours, ");
            System.out.print(diffMinutes + " minutes, ");
            System.out.print(diffSeconds + " seconds.");

        } catch (Exception e) {
            e.printStackTrace();
        }
希望这会有所帮助

private long getTimesAgo(String dateValue){
        try{
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
            sdf.setTimeZone(TimeZone.getTimeZone(Constants.DateFormat.GMT));

        long time = sdf.parse(dateValue).getTime();
        long now = System.currentTimeMillis();

        CharSequence ago = DateUtils.getRelativeTimeSpanString(time, now, DateUtils.MINUTE_IN_MILLIS);
        return ago.toString();

        }catch (Exception e){
            return 0;
        }
    }
可能重复的