有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java日期对象如何增加星期几

我目前正试图安排一个方法每周在用户选择的某一天执行一次。我知道我可以通过以下方式获得当前日期:

Date date = new Date();

设置要执行的TimerTask时,我需要根据用户选择的星期几将日期增加1-6天。我在文档中没有看到setDay()方法,我想知道解析day out、更改它并添加回date对象是否是唯一的方法。似乎更简单的事情会出现在那里


共 (5) 个答案

  1. # 1 楼答案

    你可能在找Date.setDate()

    请记住,它已被弃用,文档建议使用Calendar.set(Calendar.DAY_OF_MONTH, int date)

  2. # 2 楼答案

    public static Date addDays(Date date, int days) {
        GregorianCalendar calendar = getCalendar(date);
        calendar.add(Calendar.DATE, days);
        return calendar.getTime();
    }
    

    这应该能奏效

  3. # 3 楼答案

    您可能想使用Calendar

    使用Calendar对象,只需使用Calendar.add(Calendar.DAY_OF_WEEK, 1);即可添加一天

  4. # 4 楼答案

    使用Calendar类会很容易

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 1); // this will add number of days to current
                                    // date
        Date date = cal.getTime(); // it will return the date object
        System.out.println(date);
    
  5. # 5 楼答案

    你需要使用日历

    爪哇。util。Calendar类是日期对象的抽象封装

    Calendar为日期字段提供getter和setter。


    更新为按要求增加一周中某一天的示例:
            Date date = new Date();
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.set(Calendar.DAY_OF_WEEK,(calendar.get(Calendar.DAY_OF_WEEK)+1));
            //alternative:
            //calendar.add(Calendar.DAY_OF_WEEK, 1); 
            Date newDate = calendar.getTime();
    


    更新:注意使用java.time的Java8+实现

    日历和日期还没有被弃用,你仍然可以混合搭配

    然而,如果你想正确处理时区,或者想做更多的本地化(什么时候不做?)那么你最好使用java。时间到了