java获取本周周一的日期
时间: 2023-07-16 13:13:29 浏览: 104
可以使用以下代码获取本周周一的日期:
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
DayOfWeek dow = today.getDayOfWeek();
int dayOfWeekValue = dow.getValue(); // 1 = Monday, ..., 7 = Sunday
LocalDate monday = today.minusDays(dayOfWeekValue - 1);
System.out.println("本周周一的日期为:" + monday);
}
}
```
这里使用了Java 8引入的`java.time`包中的`LocalDate`和`DayOfWeek`类来实现。首先获取当前日期,然后获取今天是周几,并计算出距离周一还有几天。最后用当前日期减去这个天数就可以得到本周周一的日期。
相关问题
java获取本周七天日期
在Java中,你可以使用`java.time`包下的类来获取当前星期的起始日期(周日)和结束日期(周六)。下面是一个简单的例子:
```java
import java.time.LocalDate;
import java.time.DayOfWeek;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
LocalDate currentDate = LocalDate.now(); // 获取当前日期
DayOfWeek currentDayOfWeek = currentDate.getDayOfWeek(); // 获取当前星期
// 如果今天不是周一,向后移动到上周一
if (currentDayOfWeek != DayOfWeek.MONDAY) {
currentDate = currentDate.minusWeeks(1).with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
}
// 创建一个从本周一开始到周日结束的流
Stream<LocalDate> weekDates = Stream.of(currentDate, currentDate.plusDays(1), // 周日
currentDate.plusDays(2), currentDate.plusDays(3),
currentDate.plusDays(4), currentDate.plusDays(5),
currentDate.plusDays(6));
// 打印本周的所有日期
weekDates.forEach(date -> System.out.println(date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
}
}
```
这段代码首先找到当前是周几,然后根据需要调整到上周一。接着,通过`Stream`创建了一个包含一周所有日期的流,并打印出来。
java获取本周一的日期
可以使用Java的Calendar类来获取本周一的日期,代码如下:
```java
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(cal.getTime());
System.out.println("本周一的日期是:" + date);
```
解释一下代码的含义:
首先获取当前时间的Calendar实例,然后将它的DAY_OF_WEEK设置为MONDAY,即表示获取本周的第一天,然后使用SimpleDateFormat将时间格式化为字符串,最后输出结果即可。
阅读全文