Android Calendar.DAY\u OF_WEEK不适用于下个月

Android Calendar.DAY\u OF_WEEK不适用于下个月,android,Android,我真的需要帮助… 用户正在使用DatePickerDialog选择日期。我正在尝试获取用户正在选择的日期的星期几 我有以下代码: DateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy"); Calendar startDate = Calendar.getInstance(); startDate.setTime(date); int dayOfWeek = startDate.get(Calendar.

我真的需要帮助…

用户正在使用DatePickerDialog选择日期。我正在尝试获取用户正在选择的日期的星期几

我有以下代码:

    DateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy");
    Calendar startDate = Calendar.getInstance();
    startDate.setTime(date);
    int dayOfWeek = startDate.get(Calendar.DAY_OF_WEEK);
    Log.i("ZCF", "Date  = " + dateFormat.format(date));
    Log.i("ZCF", "Day of Week: " + dayOfWeek );
对于我选择的2019年1月的任何日期,结果都可以:

示例#1:

I/ZCF:日期=2019年1月13日 星期日:1

示例2:

I/ZCF:日期=2019年1月25日 星期日:6

示例#3:

I/ZCF:日期=2019年1月31日 星期日:5

但当我选择2019年1月以外的其他月份的日期时,我得到了错误的结果

以下是几个例子:

示例#1:

I/ZCF:日期=2019年2月1日 星期日:3

2019年2月1日实际上是星期五,而不是星期二

示例2:

I/ZCF:日期=2019年2月5日 星期日:7

2019年2月5日实际上是星期二,而不是星期六

示例#3:

I/ZCF:日期=2019年4月17日 星期日:5

2019年4月17日实际上是星期三,而不是星期四


有人能解释一下我做错了什么吗?

事实上,错误的格式“mm”是问题所在……我已将日期格式化如下:

                    Date date= new SimpleDateFormat("dd/mm/yyyy").parse(startDateString);
所以结果是格式化日期得到的月份值为零,实际上我总是得到2019年1月的星期几


谢谢你的帮助。

你觉得日期怎么样?您在发布的代码片段中使用的
SimpleDateFormat
模式是错误的–月份是大写的
M
,而不是小写的
M
–但这并不涉及获取
dayOfWeek
值。
GregorianCalendar
可能是此类日历的正确类。