根据指定的日期字符串获取星期几

package com.test.demo.utils.date;

import java.util.Calendar;

/**
 * @Description: 处理日期相关
 * @Project: byy
 * @Title: HandleDate.java
 * @Author: Zhangtd
 * @Date: 2020-08-24 19:37
 **/
public class HandleDate {

    /**
     * 根据指定的日期字符串获取星期几
     *
     * @param strDate 指定的日期字符串(yyyy-MM-dd 或 yyyy/MM/dd)
     * @return week
     *         星期几(MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY)
     */
    public static String getWeekByDateStr(String strDate)
    {
        int year = Integer.parseInt(strDate.substring(0, 4));
        int month = Integer.parseInt(strDate.substring(5, 7));
        int day = Integer.parseInt(strDate.substring(8, 10));

        Calendar c = Calendar.getInstance();

        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month - 1);
        c.set(Calendar.DAY_OF_MONTH, day);

        String week = "";
        int weekIndex = c.get(Calendar.DAY_OF_WEEK);

        switch (weekIndex)
        {
            case 1:
                week = "星期日";
                break;
            case 2:
                week = "星期一";
                break;
            case 3:
                week = "星期二";
                break;
            case 4:
                week = "星期三";
                break;
            case 5:
                week = "星期四";
                break;
            case 6:
                week = "星期五";
                break;
            case 7:
                week = "星期六";
                break;
        }
        return week;
    }
}

 

### 回答1: 可以使用java.util.Calendar类来实现。首先,使用Calendar.getInstance()静态方法创建一个Calendar对象,然后使用setTime()方法将其设置为指定日期,最后使用get()方法获取星期几(Calendar.DAY_OF_WEEK)。 代码示例: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse("2022-09-12"); Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); ``` 上面代码中,dayOfWeek的值为1,表示星期天。 其中SimpleDateFormat是将字符串转成日期的工具类 ### 回答2: 在Java中,可以通过使用`java.util.Calendar`类来获取指定日期星期几。 首先,我们需要创建一个`Calendar`对象,并使用指定日期设置它。可以使用以下代码创建并设置`Calendar`对象: ```java Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); // year为指定日期的年份,month为指定日期的月份(实际值要减1),day为指定日期的天 ``` 然后,我们可以使用`Calendar`对象的`get`方法来获取星期几。`Calendar.DAY_OF_WEEK`是一个`Calendar`类的常量,代表了一周中的第几天,其中1表示星期日,2表示星期一,以此类推,7表示星期六。可以使用以下代码获取指定日期对应的星期几: ```java int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); ``` 最后,我们可以将星期几转换为对应的中文星期几。可以使用一个数组来存储中文星期几的字符串,然后根据`dayOfWeek`的值来获取中文星期几。例如,可以使用以下代码获取中文星期字符串: ```java String[] weekdays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; String chineseDayOfWeek = weekdays[dayOfWeek - 1]; ``` 这样,`chineseDayOfWeek`变量就保存了对应的中文星期几。你可以根据需要使用或打印这个变量的值。 综上所述,使用Java可以通过上述步骤来获取指定日期对应的星期几,并将其转换为中文星期几。 ### 回答3: 在Java中,可以使用`java.util.Calendar`类来获取指定日期星期几。 首先,需要创建一个`Calendar`对象,并设置指定日期。可以通过调用`set`方法,传递年、月、日的参数来设置日期,月份从0开始计数,所以1月对应的是0,12月对应的是11。 接下来,可以使用`Calendar`的`get`方法来获取日期所对应的星期几。`Calendar`类提供了一个常量`Calendar.DAY_OF_WEEK`来表示星期几,返回值是一个整型值,1表示星期日,2表示星期一,依此类推,7表示星期六。可以使用一个`switch`语句根据返回的值判断具体是星期几。 以下是一个示例代码: ```java import java.util.Calendar; public class GetDayOfWeek { public static void main(String[] args) { int year = 2022; int month = 0; // 1月份,对应的是0 int day = 10; Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); String weekDay; switch (dayOfWeek) { case Calendar.SUNDAY: weekDay = "星期日"; break; case Calendar.MONDAY: weekDay = "星期一"; break; case Calendar.TUESDAY: weekDay = "星期二"; break; case Calendar.WEDNESDAY: weekDay = "星期三"; break; case Calendar.THURSDAY: weekDay = "星期四"; break; case Calendar.FRIDAY: weekDay = "星期五"; break; case Calendar.SATURDAY: weekDay = "星期六"; break; default: weekDay = "未知"; break; } System.out.println(year + "年" + (month + 1) + "月" + day + "日是" + weekDay); } } ``` 以上代码会输出:2022年1月10日是星期一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨咖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值