如何在java中从当前日期识别星期
我想用java中的当前日期标识整个星期的日期(从星期天到星期六) 例如:今天是星期二——这意味着我需要星期二、星期一和星期天的日期 如果当前日期是星期三,那么我需要从星期天到星期三的日期 如何在java中实现这种逻辑如何在java中从当前日期识别星期,java,date,Java,Date,我想用java中的当前日期标识整个星期的日期(从星期天到星期六) 例如:今天是星期二——这意味着我需要星期二、星期一和星期天的日期 如果当前日期是星期三,那么我需要从星期天到星期三的日期 如何在java中实现这种逻辑 我可以从当前日期获取星期的开始日期,但我不知道如何从星期开始日期获取剩余的日期。有任何java实用程序可用于此吗?使用java 8非常容易。但是,请注意,iso-8601标准将星期一表示为一周的第一天。。。因此,要实现您的需求,您只需将Monday作为基本情况 DayOfWeek是
我可以从当前日期获取星期的开始日期,但我不知道如何从星期开始日期获取剩余的日期。有任何java实用程序可用于此吗?使用java 8非常容易。但是,请注意,iso-8601标准将
星期一
表示为一周的第一天。。。因此,要实现您的需求,您只需将Monday
作为基本情况
DayOfWeek是一个枚举,表示一周中的7天-周一、周二、周三、周四、周五、周六和周日
除了文本枚举名称外,每周的每一天都有一个int值。int值遵循ISO-8601标准,从1(星期一)到7(星期日)。建议应用程序使用enum而不是int值,以确保代码的清晰性
作为参考,用于编制产出的当前日期为2015年7月22日星期三(2015年7月22日)
爪哇8
印刷品
2015-07-19
2015-07-20
2015-07-21
2015-07-22
2015-07-22
2015-07-21
2015-07-20
2015-07-19
2015-07-19
2015-07-20
2015-07-21
2015-07-22
作为替代方案
(这基本上适用于所有其他提到的API)您可以从今天开始简单地向后走
LocalDate date = LocalDate.now();
do {
System.out.println(date);
date = date.minusDays(1);
} while (date.getDayOfWeek() != DayOfWeek.SATURDAY);
印刷品
2015-07-19
2015-07-20
2015-07-21
2015-07-22
2015-07-22
2015-07-21
2015-07-20
2015-07-19
2015-07-19
2015-07-20
2015-07-21
2015-07-22
乔达蒂姆
印刷品
2015-07-19
2015-07-20
2015-07-21
2015-07-22
2015-07-22
2015-07-21
2015-07-20
2015-07-19
2015-07-19
2015-07-20
2015-07-21
2015-07-22
日历
作为最后手段。但是请记住,日历
包含时间信息,因此在之前使用,之后使用,等于
可能并不总是做您认为应该做的事情
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Calendar today = Calendar.getInstance();
while (cal.before(today)) {
System.out.println(cal.getTime());
cal.add(Calendar.DATE, 1);
}
印刷品
Sun Jul 19 15:01:49 EST 2015
Mon Jul 20 15:01:49 EST 2015
Tue Jul 21 15:01:49 EST 2015
Wed Jul 22 15:01:49 EST 2015
我想用java中的当前日期标识整个星期的日期(从星期天到星期六)
这应该可以解决您的问题,您可以根据您的情况进一步修改
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println("Date " + c.getTime());
c.add(Calendar.DATE, +1);
System.out.println(c.getTime());
希望它能有所帮助所以在你的开始工作日加上一天,直到你想看一看日历
,setWeekDate()
,getFirstDayOfWeek()
。我想你需要一个c.setFirstDayOfWeek(Calendar.SUNDAY)
,否则c.set(Calendar.day,Calendar.SUNDAY)
将在星期日不是一周的第一天的地区提前日期。是的,您是对的,在这种情况下,如果情况需要,我们需要设置第一天。但是正如用户明确提到的Sunday
到CurrentDayOfWeek
。我做到了。从来没有意识到一个人可以循环LocalDate
。这太酷了。@EddieB这是旧的日历天的遗留想法;)谢谢你的解决方案!这有帮助!