我有一个名为CalendarUtil.java的抽象类,这里是:
// self explanatory
public static Calendar getToday() {
Calendar calendar = Calendar.getInstance();
clearTime(calendar);
return calendar;
}
// here I am trying to get the first day of the current week which is MONDAY
public static Calendar getFirstDayOfWeek() {
Calendar calendar = getToday();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY;
return calendar;
}
// sets the date to 00:00:00:0
public static void clearTime(Calendar c) {
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
}
Calendar getFirstDayOfWeek()
方法的目的是给我一个Calendar
对象,该对象设置为当前周的 MONDAY 。例如,今天是2018年10月10日,星期三,该方法应该将日历设置为* 2018年10月8日,星期一。”这是我面临的问题:方法Calendar getFirstDayOfWeek()
在一个星期天返回奇怪的日历特定的电话(中兴公司[Android Lollipop]的型号名称:“ T60”)。当我在10月7日星期日运行代码时,应该给我一个日历设置为上周的星期一(10月1日),但是本周返回星期一(10月8日)。
我在Samsung S7(Oreo),Samsung Note 3和Note 5(Marshmellow)上进行了测试,但是代码在它们上正常工作。
我在所有这些设备上调试了代码,但是在那部特定的电话上,它没有返回前一周的星期一,而是给了下一周的星期一。
问题:是代码还是设备中的问题?如果是后者,那么设备不使用相同的Java库吗?
顺便说一句,我目前在伊斯坦布尔。我使用的设备的时区设置为“ GMT +03:00土耳其伊斯坦布尔”。