最近自己的项目中遇到一个需求,需要将标准的日yyyy-MM-dd
转换为具体的周期,即星期几。通过查找资料发现,Android中已经为我们提供了强大的日期工具Calendar类,我们可以通过该类就能快速实现日期之间的转化。这里,我已经将其封装成了一个工具类,并提供类汉/英两种周期格式的转化:
/**
* Created by moos on 2018/1/6.
* func:时间的工具类
*/
public class TimeUtils {
/**
* func:通过具体日期来获得星期几(中式)
* @param date 标准日期
* @return 星期几
*/
public static String getChineseWeekDay(String date){
String weekTime = "星期";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
try {
c.setTime(format.parse(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
switch (c.get(Calendar.DAY_OF_WEEK)){
case 1:
weekTime += "日";
break;
case 2:
weekTime += "一";
break;
case 3:
weekTime += "二";
break;
case 4:
weekTime += "三";
break;
case 5:
weekTime += "四";
break;
case 6:
weekTime += "五";
break;
case 7:
weekTime += "六";
break;
default:
throw new IllegalArgumentException("Illegal date format");
}
return weekTime;
}
/**
* func:通过具体日期来获得星期几(英式)
* @param date 标准日期
* @return 星期几
*/
public static String getEnglishWeekDay(String date){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
try {
c.setTime(format.parse(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
switch (c.get(Calendar.DAY_OF_WEEK)){
case 1:
return "Sunday";
case 2:
return "Monday";
case 3:
return "Tuesday";
case 4:
return "Wednesday";
case 5:
return "Thursday";
case 6:
return "Friday";
case 7:
return "Saturday";
default:
throw new IllegalArgumentException("Illegal date format");
}
}
}
代码不多,使用起来很方便,值得注意的是,参数只能是标准格式的日期字符串,大家可以根据需求自行设定,代码部分理解不难,这里不多做讲解了。大家有任何问题或者建议,欢迎留言或者加群讨论,谢谢.