Calendar.DAY_OF_WEEK下个月不工作

时间:2019-01-13 23:15:49

标签: android

我真的需要这里的帮助...

用户正在使用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:日期= 13/01/2019     星期几:1

示例2:

I / ZCF:日期= 25/01/2019     星期几:6

示例3:

I / ZCF:日期= 31/01/2019     星期几:5

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

以下是一些示例:

示例1:

I / ZCF:日期= 01/02/2019     星期几:3

1-FEB-2019实际上是星期五,而不是星期二

示例2:

I / ZCF:日期= 05/02/2019     星期几:7

5-FEB-2019实际上实际上是星期二,而不是星期六

示例3:

I / ZCF:日期= 17/04/2019     星期几:5

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

有人可以解释一下我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

实际上是错误的格式“ mm”,这是问题...我将日期的格式设置为:

const a = [{"col1": 1, "col2": 25},{"col1": 1, "col2": 25},{"col1": 3, "col2": 30}];

console.log(
  a.reduce(
    (acc, val) => !acc.some(({col1, col2}) => val.col1 === col1 && val.col2 === col2) 
                  ? acc.concat(val) 
                  : acc, 
     []
  )
);

因此结果是格式化日期的月份价值为零,而实际上我总是得到2019年1月的星期几。

感谢您的帮助。