您的位置:首页 > 移动开发 > Android开发

Android时间转换星期 昨天 今天工具

2016-12-08 14:24 429 查看
这是一个时间转换工具类,可以转换成,昨天,今天下午,今天上午,还可以判断是星期几。

上代码

显示格式:

1,下面的图片对应第一个方法的效果:



2,下面的图对应的第二个方法效果:





3,下面的图片是第三个方法的效果。



import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
* 时间转换工具
*/
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);
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 "昨天";
}else{
calendar.add(Calendar.DAY_OF_MONTH, -5);
if (calendar.before(inputTime)){
return getWeekDayStr(inputTime.get(Calendar.DAY_OF_WEEK));
}
else
{
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
int year = inputTime.get(Calendar.YEAR);
int month = inputTime.get(Calendar.MONTH);
int day = inputTime.get(Calendar.DAY_OF_MONTH);
return year+"/"+month+"/"+day;
}

}

}
/**
* 群发使用的时间转换
*/
public static String multiSendTimeToStr(long timeStamp) {

if (timeStamp==0) return "";
Calendar inputTime = Calendar.getInstance();
String timeStr = timeStamp + "";
if(timeStr.length() == 10){
timeStamp = timeStamp*1000;
}
inputTime.setTimeInMillis(timeStamp);
Date currenTimeZone = inputTime.getTime();
Calendar calendar = Calendar.getInstance();
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 "昨天";
}else {
calendar.add(Calendar.DAY_OF_MONTH, -5);
if (calendar.before(inputTime)){
return getWeekDayStr(inputTime.get(Calendar.DAY_OF_WEEK));
} else{
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("M"+"/"+"d"+" ");
String temp1 = sdf.format(currenTimeZone);
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm");
String temp2 = sdf1.format(currenTimeZone);
return temp1+temp2;
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy"+"/"+"M"+"/"+"d"+" ");
String temp1 = sdf.format(currenTimeZone);
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm");
String temp2 = sdf1.format(currenTimeZone);
return temp1+temp2;
}
}
}
}
/**
* 时间转化为聊天界面显示字符串
*
* @param timeStamp 单位为秒
*/
public static String getChatTimeStr(long timeStamp){
if (timeStamp==0) return "";
Calendar inputTime = Calendar.getInstance();
String timeStr = timeStamp + "";
if(timeStr.length() == 10){
timeStamp = timeStamp*1000;
}
inputTime.setTimeInMillis(timeStamp);
Date currenTimeZone = inputTime.getTime();
Calendar calendar = Calendar.getInstance();
//        if (calendar.before(inputTime)){
//            //当前时间在输入时间之前
//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy" + "年"+"MM"+"月"+"dd"+"日");
//            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("h:mm");
return timeFormatStr(inputTime,sdf.format(currenTimeZone));
}
calendar.add(Calendar.DAY_OF_MONTH,-1);
if (calendar.before(inputTime)){
SimpleDateFormat sdf = new SimpleDateFormat("h:mm");
return "昨天"+" "+timeFormatStr(inputTime, 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"+"月"+"d"+"日");
String temp1 = sdf.format(currenTimeZone);
SimpleDateFormat sdf1 = new SimpleDateFormat("h:mm");
String temp2 = timeFormatStr(inputTime, sdf1.format(currenTimeZone));
return temp1+temp2;
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy"+"年"+"M"+"月"+"d"+"日");
String temp1 = sdf.format(currenTimeZone);
SimpleDateFormat sdf1 = new SimpleDateFormat("h:mm");
String temp2 = timeFormatStr(inputTime, sdf1.format(currenTimeZone));
return temp1+temp2;
}

}

}

/**
* 24小时制转化成12小时制
*
* @param strDay
*/
public static String timeFormatStr(Calendar calendar,String strDay)
{
String tempStr = "";
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour > 11)
{
tempStr = "下午"+" " + strDay;
}
else
{
tempStr = "上午"+" " + strDay;
}
return tempStr;
}

/**
* 时间转化为星期
*
* @param indexOfWeek   星期的第几天
*/
public static String getWeekDayStr(int indexOfWeek){
String weekDayStr = "";
switch (indexOfWeek)
{
case 1:
weekDayStr = "星期日";
break;
case 2:
weekDayStr = "星期一";
break;
case 3:
weekDayStr = "星期二";
break;
case 4:
weekDayStr = "星期三";
break;
case 5:
weekDayStr = "星期四";
break;
case 6:
weekDayStr = "星期五";
break;
case 7:
weekDayStr = "星期六";
break;
}
return weekDayStr;
}
/**
* 将时间戳格式化,13位的转为10位
* @param timestamp
* @return
*/
public static long timestampFormate(long timestamp){
String timestampStr = timestamp + "";
if(timestampStr.length() == 13){
timestamp = timestamp/1000;
}
return timestamp;
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐