Java 月份的第周返回0,而linux命令返回1

Java 月份的第周返回0,而linux命令返回1,java,linux,date,calendar,debian,Java,Linux,Date,Calendar,Debian,出于某种奇怪的原因Calendar.getInstance().get(Calendar.WEEK/u OF/u MONTH)返回0,而linux中的命令返回1 root@ns4009576:~# echo $((($(date +%d)-1)/7+1)) 一, 一开始我以为第一天是星期一,所以星期天(今天)是第0个月(?) 但情况似乎也并非如此,locale将周日作为第一天返回 root@ns4009576:~# locale day 星期日;星期一;星期二;星期三;星期四;星期五;星期六

出于某种奇怪的原因
Calendar.getInstance().get(Calendar.WEEK/u OF/u MONTH)
返回
0
,而linux中的命令返回
1

root@ns4009576:~# echo $((($(date +%d)-1)/7+1))
一,

一开始我以为第一天是星期一,所以星期天(今天)是第0个月(?) 但情况似乎也并非如此,locale将周日作为第一天返回

root@ns4009576:~# locale day
星期日;星期一;星期二;星期三;星期四;星期五;星期六


非常感谢您的帮助。

Java可能不遵守与您的
date
命令相同的语言环境规则。比较两者可能不是一个好主意

您将获得
0
作为一个月的一周,因为星期日不是您一周的第一天。尝试将其添加到代码中以查看差异:

calendar.setFirstDayOfWeek(Calendar.SUNDAY);

为什么要比较java方法和linux命令的结果?最好打印出一些有关日历的详细信息,如
System.out.println(calendar.getInstance())