前言
本篇文章主要讲解的有关Android开发中常用的时间的处理方式以及应用。其它相关的内容,可以参考链接: https://blog.csdn.net/qq_36451275/article/details/135934330?spm=1001.2014.3001.5501上篇文章。`
下面主要讲解具体的使用方法
一、时间戳
1.根据出生的时间戳获取当前年龄
public static int getAge(long birthday) {
Calendar currentCalendar = Calendar.getInstance();//实例化calendar
currentCalendar.setTimeInMillis(System.currentTimeMillis());//调用setTimeInMillis方法和System.currentTimeMillis()获取当前时间
Calendar targetCalendar = Calendar.getInstance();
targetCalendar.setTimeInMillis(birthday);//这个解析传进来的时间戳
if (currentCalendar.get(Calendar.MONTH) >= targetCalendar.get(Calendar.MONTH)) {
//如果现在的月份大于生日的月份
return currentCalendar.get(Calendar.YEAR) - targetCalendar.get(Calendar.YEAR);//那就直接减,因为现在的年月都大于生日的年月
} else {
return currentCalendar.get(Calendar.YEAR) - targetCalendar.get(Calendar.YEAR) - 1;//否则,减掉一年
}
}
2.根据时间戳获取描述性时间,如3分钟前,1天前
public static String getDescriptionTimeFromTimestamp(String timeStr, String format) {
if (format == null || format.trim().equals("")) {
sdf.applyPattern(FORMAT_DATE_TIME_FULL);
} else {
sdf.applyPattern(format);
}
try {
Date date = sdf.parse(timeStr);
return getDescriptionTimeFromTimestamp(Objects.requireNonNull(date).getTime());
} catch (Exception e) {
e.printStackTrace();
return timeStr;
}
}
public static String getDescriptionTimeFromTimestamp(long timestamp) {
long currentTime = System.currentTimeMillis();
long timeGap = (currentTime - timestamp)</