2

当我获得当前日期时,它会将我返回4为当前星期几。但是当我用 设置日期时calendar.set(mYear, mMonth, mDay);,我得到7的是星期几。我检查了日期是否相同,一切似乎都相同,但我得到了不同的一天。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
Calendar calendario = Calendar.getInstance();    
Log.w("TAG",""+"********:"+calendario.get(Calendar.DAY_OF_WEEK));
Log.w(4);


mYear = "2012";
mMonth = "10";
mDay = "10";

Calendar calendario = Calendar.getInstance();
calendario.set(mYear, mMonth, mDay);
Log.w("TAG","---------: "+calendario.get(Calendar.DAY_OF_WEEK));
    Log.w(7);

有谁知道这可能会发生?

谢谢!

4

3 回答 3

12

您可能的问题是Calendar 使用从零开始的索引来表示 months。因此,如果您尝试将日历设置为十月,则必须使用 9,而不是 10。

这是日历的愚蠢和不一致吗?是的!改用Joda-Time API来处理日期和时间。据我所知,在JSR 310出现之前,它目前是事实上的标准。

于 2012-10-10T13:41:33.470 回答
0

int month=9; int year=2012; int day=10; calendario.set(2012, 9, 10);

使用 9 表示 10 月份,因为月份 JAN-DEC 触发为 0-11。

于 2012-10-10T13:57:08.393 回答
0
于 2018-02-08T22:25:24.537 回答