×

Android日期格式转换(将日期转为周期)

96
水月沐風
2018.01.21 14:23 字数 214

最近自己的项目中遇到一个需求,需要将标准的日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");

        }

    }
}

代码不多,使用起来很方便,值得注意的是,参数只能是标准格式的日期字符串,大家可以根据需求自行设定,代码部分理解不难,这里不多做讲解了。大家有任何问题或者建议,欢迎留言或者加群讨论,谢谢.

Android集中营
Android日常系列
Web note ad 1