从日历返回错误的数据

时间:2015-11-09 03:43:43

标签: android

我正在尝试检索一个月内的星期数。实际上今天是11月的第二周,但我得到它为3

我正在使用的代码是

  Log.e("dfhkdjfk", Calendar.getInstance().get(Calendar.WEEK_OF_MONTH)+"");

请帮我弄清楚。

参考时间:

3:45 AM
Monday, November 9, 2015
Coordinated Universal Time (UTC)

3 个答案:

答案 0 :(得分:1)

错误。

对于像法国这样星期一是一周的第一天的某个国家,今天真的是11月第三周的第一天,因为11月的第一天是星期天(因此11月的第一周有一天。 ..)。

您可以使用DAY_OF_WEEK_IN_MONTH来显示从当月开始的一天已经发生的时间。

否则,请检查哪一天被视为本周的第一天,并实施一些逻辑以使其适应您的需要。

答案 1 :(得分:0)

您需要使用TimeZone下面的代码尝试正确的Calendar.WEEK_OF_MONTH

Calendar calUs = Calendar.getInstance(TimeZone.getTimeZone("US/Eastern"), Locale.US);
    int weekOfMonthUs = calUs.get(Calendar.WEEK_OF_MONTH);
    System.out.println("Week of month is " + weekOfMonthUs);

O / P

enter image description here

答案 2 :(得分:0)

每月的一周是从周日开始到当前几周的当周。 WEEK_OF_MONTH取决于一周的第一天。并非所有日历周日都有本周开始。例如:法国周一是本周的第一天。因此,在进入此项之前,请检查手机的locale