java.util.Calendar的getFirstDayOfWeek()方法给出了下周的星期一,而不是当前周的星期一

时间:2018-10-10 15:25:20

标签: android

我有一个名为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土耳其伊斯坦布尔”。

0 个答案:

没有答案