Android工具类篇 日期工具类DateUtil 星期获取(下篇)

Posted 彭老希

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android工具类篇 日期工具类DateUtil 星期获取(下篇)相关的知识,希望对你有一定的参考价值。

获得本周周一到周日日期(可以跨年计算)

        //SimpleDateFormat 格式 = new SimpleDateFormat("y年M月d日 E H时m分s秒", Locale.CHINA);
        SimpleDateFormat 格式 = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar 日历 = Calendar.getInstance(Locale.CHINA);
        日历.setFirstDayOfWeek(Calendar.MONDAY);
        //当前时间,貌似多余,其实是为了所有可能的系统一致
        日历.setTimeInMillis(System.currentTimeMillis());
        System.out.println("当前时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        System.out.println("周一时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
        System.out.println("周二时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        System.out.println("周三时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
        System.out.println("周四时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
        System.out.println("周五时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        System.out.println("周六时间:"+格式.format(日历.getTime()));
        日历.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        System.out.println("周日时间:"+格式.format(日历.getTime()));
public class DateUtil {

    /**
     * 获得星期X
     * @return 返回字符串型数字(根据自己需要修改返回值类型)
     */
    public static String getWeekDay() {
        // 获得星期几
        Calendar calendar = Calendar.getInstance();
        int mWeekDay = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        if (mWeekDay == 0){
            mWeekDay = 7;
        }
        Log.v("ceshi", "mWeekDay -- " + mWeekDay );
        return String.valueOf(mWeekDay);
    }
 
    /**
     * 获得 今天的 年-月-日 星期X
     */
    public static String getToday() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        //当前时间,貌似多余,其实是为了所有可能的系统一致
        calendar.setTimeInMillis(System.currentTimeMillis());
        System.out.println("当前时间:" + simpleDateFormat.format(calendar.getTime()));
        String mToday = myDateFormat(simpleDateFormat.format(calendar.getTime()));
        return mToday;
    }
 
    /**
     * 获得 本周一 年-月-日
     */
    public static String getZhou1() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 获得 本周二 年-月-日
     */
    public static String getZhou2() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 获得 本周三 年-月-日
     */
    public static String getZhou3() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 获得 本周四 年-月-日
     */
    public static String getZhou4() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 获得 本周五 年-月-日
     */
    public static String getZhou5() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 获得 本周六 年-月-日
     */
    public static String getZhou6() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 获得 本周日 年-月-日
     */
    public static String getZhou7() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y年M月d日 E", Locale.CHINA);
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        String date = myDateFormat2(simpleDateFormat.format(calendar.getTime()));
        return date;
    }
 
    /**
     * 日期格式化 年-月-日 星期X
     */
    private static String myDateFormat(String format) {
        String[] format_all = format.split(" ");
        format_all[0] = format_all[0].replace("年", "-"); // 替换
        format_all[0] = format_all[0].replace("月", "-"); // 替换
        format_all[0] = format_all[0].replace("日", ""); // 替换
        format_all[1] = format_all[1].replace("周一", "星期一"); // 替换
        format_all[1] = format_all[1].replace("周二", "星期二"); // 替换
        format_all[1] = format_all[1].replace("周三", "星期三"); // 替换
        format_all[1] = format_all[1].replace("周四", "星期四"); // 替换
        format_all[1] = format_all[1].replace("周五", "星期五"); // 替换
        format_all[1] = format_all[1].replace("周六", "星期六"); // 替换
        format_all[1] = format_all[1].replace("周日", "星期日"); // 替换
        String formatBack = format_all[0] + " " + format_all[1];
        return formatBack;
    }
 
    /**
     * 日期格式化 年-月-日
     */
    private static String myDateFormat2(String format) {
        String[] format_all = format.split(" ");
        format_all[0] = format_all[0].replace("年", "-"); // 替换
        format_all[0] = format_all[0].replace("月", "-"); // 替换
        format_all[0] = format_all[0].replace("日", ""); // 替换
        String formatBack = format_all[0];
        return formatBack;
    }
}

以上是关于Android工具类篇 日期工具类DateUtil 星期获取(下篇)的主要内容,如果未能解决你的问题,请参考以下文章

Android-DateUtil工具类

Android-DateUtil工具类

Android工具类篇 动画工具类

Android工具类篇 图片工具类

日期工具类 - DateUtil.java

Android工具类篇 dp转px工具类