在做聊天页面的时候,难免遇到要把一个时间戳转换为一个好看的格式,每次都动手写也太累了,在这里给大家分享一下我的工具类吧
其中time_year、time_month等 在文字最后贴出来给大家哦。
/**
* 时间转换工具
*/
public class TimeUtil {
private TimeUtil(){}
/**
* 时间转化为显示字符串
*
* @param timeStamp 单位为秒
*/
public static String getTimeStr(long timeStamp){
if (timeStamp==0) return "";
Calendar inputTime = Calendar.getInstance();
inputTime.setTimeInMillis(timeStamp*1000);
Date currenTimeZone = inputTime.getTime();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
if (calendar.before(inputTime)){
//今天23:59在输入时间之前,解决一些时间误差,把当天时间显示到这里
SimpleDateFormat sdf = new SimpleDateFormat("yyyy" + AppApplication.getContext().getResources().getString(R.string.time_year)+"MM"+AppApplication.getContext().getResources().getString(R.string.time_month)+"dd"+AppApplication.getContext().getResources().getString(R.string.time_day));
return sdf.format(currenTimeZone);
}
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
return sdf.format(currenTimeZone);
}
calendar.add(Calendar.DAY_OF_MONTH,-1);
if (calendar.before(inputTime)){
return AppApplication.getContext().getResources().getString(R.string.time_yesterday);
}else{
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("M"+AppApplication.getContext().getResources().getString(R.string.time_month)+"d"+AppApplication.getContext().getResources().getString(R.string.time_day));
return sdf.format(currenTimeZone);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy" + AppApplication.getContext().getResources().getString(R.string.time_year)+"MM"+AppApplication.getContext().getResources().getString(R.string.time_month)+"dd"+AppApplication.getContext().getResources().getString(R.string.time_day));
return sdf.format(currenTimeZone);
}
}
}
/**
* 时间转化为聊天界面显示字符串
*
* @param timeStamp 单位为秒
*/
public static String getChatTimeStr(long timeStamp){
if (timeStamp==0) return "";
Calendar inputTime = Calendar.getInstance();
inputTime.setTimeInMillis(timeStamp*1000);
Date currenTimeZone = inputTime.getTime();
Calendar calendar = Calendar.getInstance();
if (calendar.before(inputTime)){
//当前时间在输入时间之前
SimpleDateFormat sdf = new SimpleDateFormat("yyyy" + AppApplication.getContext().getResources().getString(R.string.time_year)+"MM"+AppApplication.getContext().getResources().getString(R.string.time_month)+"dd"+AppApplication.getContext().getResources().getString(R.string.time_day));
return sdf.format(currenTimeZone);
}
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
return sdf.format(currenTimeZone);
}
calendar.add(Calendar.DAY_OF_MONTH,-1);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
return AppApplication.getContext().getResources().getString(R.string.time_yesterday)+" "+sdf.format(currenTimeZone);
}else{
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("M"+AppApplication.getContext().getResources().getString(R.string.time_month)+"d"+AppApplication.getContext().getResources().getString(R.string.time_day)+" HH:mm");
return sdf.format(currenTimeZone);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy"+AppApplication.getContext().getResources().getString(R.string.time_year)+"MM"+AppApplication.getContext().getResources().getString(R.string.time_month)+"dd"+AppApplication.getContext().getResources().getString(R.string.time_day)+" HH:mm");
return sdf.format(currenTimeZone);
}
}
}
}
资源文件引用 存放至 res - values - strings.xml 文件中即可使用哟
<string name="time_day">日</string>
<string name="time_month">月</string>
<string name="time_year">年</string>