简单的一个方法,转换显示一下时间。
利用下文formatDateTime方法,即可将一个时间转换为
- 今天
- 昨天
- 星期x (昨天到一周以内)
- yyyy-MM-dd HH:mm:ss
输出。
关于星期几的部分,目前代码已经转为中国时间星期计算方式,即周一为一周的第一天
/**
* 根据传入时间格式为 yyyy-MM-dd HH:mm:ss 的字符串时间,得出是 今天,昨天,星期几,那个具体时间
*
* @param time
*
* @return
*/
private static String formatDateTime(String time) {
SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(time==null ||"".equals(time)){
return "";
}
Date operateDate = null;
try {
operateDate = format.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar current = Calendar.getInstance();
Calendar today = Calendar.getInstance(); //今天
today.set(Calendar.YEAR, current.get(Calendar.YEAR));
today.set(Calendar.MONTH, current.get(Calendar.MONTH));
today.set(Calendar.DAY_OF_MONTH,current.get(Calendar.DAY_OF_MONTH));
// Calendar.HOUR——12小时制的小时数 Calendar.HOUR_OF_DAY——24小时制的小时数
today.set( Calendar.HOUR_OF_DAY, 0);
today.set( Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
Calendar yesterday = Calendar.getInstance(); //昨天
yesterday.set(Calendar.YEAR, current.get(Calendar.YEAR));
yesterday.set(Calendar.MONTH, current.get(Calendar.MONTH));
yesterday.set(Calendar.DAY_OF_MONTH,current.get(Calendar.DAY_OF_MONTH)-1);
yesterday.set( Calendar.HOUR_OF_DAY, 0);
yesterday.set( Calendar.MINUTE, 0);
yesterday.set(Calendar.SECOND, 0);
Calendar oneWeek = Calendar.getInstance(); //一个礼拜以内
oneWeek.set(Calendar.YEAR, current.get(Calendar.YEAR));
oneWeek.set(Calendar.MONTH, current.get(Calendar.MONTH));
oneWeek.set(Calendar.DAY_OF_MONTH,current.get(Calendar.DAY_OF_MONTH)-7);
oneWeek.set( Calendar.HOUR_OF_DAY, 0);
oneWeek.set( Calendar.MINUTE, 0);
oneWeek.set(Calendar.SECOND, 0);
current.setTime(operateDate);
if(current.after(today)){
//return youApplicationContext.getResources().getString(R.string.today);
return "今天";
}else if(current.before(today) && current.after(yesterday)){
return "昨天";
}else if(current.before(yesterday) && current.after(oneWeek)){
//一周第一天是否为星期天
boolean isFirstSunday = (current.getFirstDayOfWeek() == Calendar.SUNDAY);
//获取周几
int weekDay = current.get(Calendar.DAY_OF_WEEK);
//若一周第一天为星期天,则-1,即中国时间
if(isFirstSunday){
weekDay = weekDay - 1;
if(weekDay == 0){
weekDay = 7;
}
}
switch (weekDay){
case 1:
return "星期一";
case 2:
return "星期二";
case 3:
return "星期三";
case 4:
return "星期四";
case 5:
return "星期五";
case 6:
return "星期六";
case 7:
return "星期天";
}
}
else{
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd");//24小时制
String LgTime = sdformat.format(operateDate);
return LgTime;
}
return "error";
}
.
.
.
测试代码
String tset1 = formatDateTime("2017-04-26 08:08:08");
Log.d("TEST_DATE", "取 tset1 2017-04-26 08:08:08 数据: " +tset1);
String tset2 = formatDateTime("2017-04-25 08:08:08");
Log.d("TEST_DATE", "取 tset2 2017-04-25 08:08:08 数据: " +tset2);
String tset3 = formatDateTime("2017-04-24 08:08:08");
Log.d("TEST_DATE", "取 tset3 2017-04-24 08:08:08 数据: " +tset3);
String tset4 = formatDateTime("2017-04-23 08:08:08");
Log.d("TEST_DATE", "取 tset4 2017-04-23 08:08:08 数据: " +tset4);
String tset5 = formatDateTime("2017-04-22 08:08:08");
Log.d("TEST_DATE", "取 tset5 2017-04-22 08:08:08 数据: " +tset5);
String tset6 = formatDateTime("2017-04-21 08:08:08");
Log.d("TEST_DATE", "取 tset6 2017-04-21 08:08:08 数据: " +tset6);
String tset7 = formatDateTime("2017-04-20 08:08:08");
Log.d("TEST_DATE", "取 tset7 2017-04-20 08:08:08 数据: " +tset7);
String tset8 = formatDateTime("2017-04-19 08:08:08");
Log.d("TEST_DATE", "取 tset8 2017-04-19 08:08:08 数据: " +tset8);
String tset9 = formatDateTime("2017-04-18 08:08:08");
Log.d("TEST_DATE", "取 tset9 2017-04-18 08:08:08数据: " +tset9);
String tset10 = formatDateTime("2017-04-17 08:08:08");
Log.d("TEST_DATE", "取 tset10 2017-04-17 08:08:08数据: " +tset10);
.
.
.
输出
D/TEST_DATE: 取 tset1 2017-04-26 08:08:08 数据: 今天
D/TEST_DATE: 取 tset2 2017-04-25 08:08:08 数据: 昨天
D/TEST_DATE: 取 tset3 2017-04-24 08:08:08 数据: 星期一
D/TEST_DATE: 取 tset4 2017-04-23 08:08:08 数据: 星期天
D/TEST_DATE: 取 tset5 2017-04-22 08:08:08 数据: 星期六
D/TEST_DATE: 取 tset6 2017-04-21 08:08:08 数据: 星期五
D/TEST_DATE: 取 tset7 2017-04-20 08:08:08 数据: 星期四
D/TEST_DATE: 取 tset8 2017-04-19 08:08:08 数据: 星期三
D/TEST_DATE: 取 tset9 2017-04-18 08:08:08数据: 2017-04-18
D/TEST_DATE: 取 tset10 2017-04-17 08:08:08数据: 2017-04-17
.
.
.
大概如此,自由发挥
撰文时间为2017-04-26。
如上。