我需要在方法集中设置几天。我尝试使用:
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
但这种方式只在周三设定。
谢谢你,对不起我的英语:)
答案 0 :(得分:1)
Calendar
无法按预期运行。来自JavaDoc:
Calendar类是一个提供方法的抽象类 在特定时刻和一组日历之间转换 字段,例如YEAR,MONTH,DAY_OF_MONTH,HOUR等,以及for 操纵日历字段,例如获取下一个日期 周。瞬间可以用毫秒值表示 这是格林威治标准时间1970年1月1日00:00:00 GMT的偏差 (阳历)。
请注意,文档说明了specific instant in time
。这意味着Calendar
只能基于纪元的一个时间点。
当您使用set
方法时,您通过每次调用调整specific instant in time
。所以首先将它设置为星期一,然后是星期三。
您可以使用List<Calendar>
存储设置为所需日期的多个Calendar
个实例。
public class CalendarTest {
public static void main(String[] args) {
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal2.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
List<Calendar> calendars = Arrays.asList(cal1, cal2);
}
}