Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓获得即将到来的星期天的日期_Android_Date - Fatal编程技术网

Android 安卓获得即将到来的星期天的日期

Android 安卓获得即将到来的星期天的日期,android,date,Android,Date,我使用下面的代码来获取即将到来的星期天的日期。代码在某些设备中工作,但在某些设备中,它会在周日之后的周日显示。请帮忙。为什么它在某些设备中不起作用 try { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar c=Calendar.getInstance(); c.set(Calendar.DAY_OF_WEEK,Calen

我使用下面的代码来获取即将到来的星期天的日期。代码在某些设备中工作,但在某些设备中,它会在周日之后的周日显示。请帮忙。为什么它在某些设备中不起作用

try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

            Calendar c=Calendar.getInstance();
            c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
            c.set(Calendar.HOUR_OF_DAY,0);
            c.set(Calendar.MINUTE,0);
            c.set(Calendar.SECOND,0);
            c.add(Calendar.DATE,7);

            Date currentTime = c.getTime();
            date = dateFormat.format(currentTime);

        } catch (Exception e) {
            e.printStackTrace();
        }

可能是时区的问题吗?
试试这个:

 Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("some time zone"));

这可能适用于您

具有相同时区的设备提供不同的日期对于2017年3月6日星期一这样的日期,您希望下一个星期日是12日还是19日?下一个星期日是12日,这取决于您认为本周从哪一天开始。如果在上面的示例中,一周从周一开始,那么将
一周中的第几天设置为
周日将设置为第12天,然后再加上7天将得到第19天。
private static Calendar getNextSundayDate() {
        Calendar calendarForNextSunday = Calendar.getInstance();
        int today = calendarForNextSunday.get(Calendar.DAY_OF_WEEK);
        //System.out.println("today" + today);
        if (today != Calendar.SUNDAY) {
            int offset = Calendar.SATURDAY - today + Calendar.SUNDAY;
            //System.out.println("offset" + offset);
            calendarForNextSunday.add(Calendar.DATE, offset);
            //System.out.println("new" + calendarForNextSunday.get(Calendar.DAY_OF_WEEK));
            //System.out.println("next sunday" + calendarForNextSunday.get(Calendar.DATE));
        }
        return calendarForNextSunday;
    }