java日期对象-如何增加星期几
我目前正试图安排一个方法每周在用户选择的某一天执行一次。我知道我可以通过以下方式获得当前日期:java日期对象-如何增加星期几,java,date,Java,Date,我目前正试图安排一个方法每周在用户选择的某一天执行一次。我知道我可以通过以下方式获得当前日期: Date date = new Date(); 设置要执行的TimerTask时,我需要根据用户选择的星期几将日期增加1-6天。我在文档中没有看到setDay()方法,我想知道解析day out、更改它并添加回date对象是否是唯一的方法。似乎还有更简单的事情要做。你需要使用日历 Calendar类是日期对象的抽象封装 Calendar为日期字段提供getter和setter。 更新为按要求增加一
Date date = new Date();
设置要执行的TimerTask时,我需要根据用户选择的星期几将日期增加1-6天。我在文档中没有看到setDay()方法,我想知道解析day out、更改它并添加回date对象是否是唯一的方法。似乎还有更简单的事情要做。你需要使用日历 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。您需要使用日历 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。您可能想使用
日历
使用Calendar
对象,您可以简单地使用Calendar.add(Calendar.DAY\u OF u WEEK,1)
要添加一天您可能需要使用日历
使用Calendar
对象,您可以简单地使用Calendar.add(Calendar.DAY\u OF u WEEK,1)
要添加一天使用日历
类将很容易
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);
使用日历
类将很容易
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);
这应该能奏效
这应该可以解决问题。您可能正在寻找
请记住,它已被弃用,文档建议使用Calendar.set(Calendar.DAY\u OF\u MONTH,int date)
您可能正在寻找的
请记住,它已被弃用,文档建议使用Calendar.set(Calendar.DAY\u OF\u MONTH,int date)
您可以发布一个从日历对象获取日期并增加星期几的示例吗?需要作为日期对象结束,以便我可以使用计时器。计划(…,…)我用一个增加一周中某一天的示例更新了答案。当使用calendar.set(calendar.day\u of_week,2)时,它会将日历日期设置为上一个星期一,而我需要它始终是一周中的下一天。对此有什么想法吗?首先,请使用常量,即calendar.set(calendar.DAY\u of_WEEK,calendar.MONDAY)。将一周中的一天测试到一个范围(calendar.get(calendar.day\u of_week)>=calendar.MONDAY)会更容易,这是使用API的正确方法。接下来,请详细说明您在使用日期和预期结果方面存在的问题。仅供参考,非常麻烦的日期时间类,例如,和java.text.simpleDataFormat
,现在已被java 8及更高版本中内置的类所取代。请参阅。您可以发布一个从日历对象获取日期并增加星期几的示例吗?需要作为日期对象结束,以便我可以使用计时器。计划(…,…)我用一个增加一周中某一天的示例更新了答案。当使用calendar.set(calendar.day\u of_week,2)时,它会将日历日期设置为上一个星期一,而我需要它始终是一周中的下一天。对此有什么想法吗?首先,请使用常量,即calendar.set(calendar.DAY\u of_WEEK,calendar.MONDAY)。将一周中的一天测试到一个范围(calendar.get(calendar.day\u of_week)>=calendar.MONDAY)会更容易,这是使用API的正确方法。接下来,请详细说明您在使用日期和预期结果方面存在的问题。仅供参考,非常麻烦的日期时间类,例如,和java.text.simpleDataFormat
,现在已被java 8及更高版本中内置的类所取代。请参阅。getCalendar
未定义。此外,它应该是calendar.add(calendar.DAY/u周,1)
,而不是calendar.add(calendar.DATE,1)
,不保留周末。getCalendar
未定义。此外,它应该是calendar.add(calendar.DAY\u OF_WEEK,1)
,而不是calendar.add(calendar.DATE,1)
,为了不保留weekends.FYI,像、java.text.SimpleDataFormat
这样非常麻烦的日期时间类现在被java 8和更高版本中内置的类所取代。请参见.FYI,像和java.text.simpleDataFormat
这样非常麻烦的日期-时间类现在被内置在Java8和更高版本中的类所取代。看见