Android Calendar.DAY\u OF_WEEK不适用于下个月
我真的需要帮助… 用户正在使用DatePickerDialog选择日期。我正在尝试获取用户正在选择的日期的星期几 我有以下代码: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.
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
可能是此类日历的正确类。