我正在尝试检索一个月内的星期数。实际上今天是11月的第二周,但我得到它为3
我正在使用的代码是
Log.e("dfhkdjfk", Calendar.getInstance().get(Calendar.WEEK_OF_MONTH)+"");
请帮我弄清楚。
参考时间:
3:45 AM
Monday, November 9, 2015
Coordinated Universal Time (UTC)
答案 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
答案 2 :(得分:0)
每月的一周是从周日开始到当前几周的当周。
WEEK_OF_MONTH
取决于一周的第一天。并非所有日历周日都有本周开始。例如:法国周一是本周的第一天。因此,在进入此项之前,请检查手机的locale
。