Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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
如何在java中从当前日期识别星期_Java_Date - Fatal编程技术网

如何在java中从当前日期识别星期

如何在java中从当前日期识别星期,java,date,Java,Date,我想用java中的当前日期标识整个星期的日期(从星期天到星期六) 例如:今天是星期二——这意味着我需要星期二、星期一和星期天的日期 如果当前日期是星期三,那么我需要从星期天到星期三的日期 如何在java中实现这种逻辑 我可以从当前日期获取星期的开始日期,但我不知道如何从星期开始日期获取剩余的日期。有任何java实用程序可用于此吗?使用java 8非常容易。但是,请注意,iso-8601标准将星期一表示为一周的第一天。。。因此,要实现您的需求,您只需将Monday作为基本情况 DayOfWeek是

我想用java中的当前日期标识整个星期的日期(从星期天到星期六)

例如:今天是星期二——这意味着我需要星期二、星期一和星期天的日期

如果当前日期是星期三,那么我需要从星期天到星期三的日期

如何在java中实现这种逻辑


我可以从当前日期获取星期的开始日期,但我不知道如何从星期开始日期获取剩余的日期。有任何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这是旧的
日历
天的遗留想法;)谢谢你的解决方案!这有帮助!