2017-04-13 147 views
0

在我的情况一周从开始星期一到星期日。我想获得本周星期一日期。 我使用以下代码来获取星期一日期。本周星期一日期

 Calendar c = Calendar.getInstance(); 
     c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
     System.out.println("Date " + c.getTime()); 

它工作正常的所有天周日除外,如果当天是周日会给下周周一date.Is有可能得到使用java.util.Date/Calendar本周周一日期即使是星期天,也可以使用 API。

任何帮助表示赞赏。

+1

你使用Java 8吗?如果是这样,你可能更想查找'java.time'-API。 – Roland

回答

2

您可以告诉Calendar课程应该将星期几视为第一天。尝试添加下面一行:

c.setFirstDayOfWeek(Calendar.MONDAY); 
+0

不,它不工作,同样的事情,我下周星期一的日期。 – Joe

1
LocalDateTime thisWeeksMonday = LocalDateTime.now().with(DayOfWeek.MONDAY); 

万一那的Java 8是一个选项。

如“Get date of first day of week based on LocalDate.now() in Java 8”中所述,您的使用可能会有所不同。

关于Java < 8您需要将Jack设置为setFirstDayOfWeek。只要确定你在改变你的一周之前设置它,例如:

Calendar c = Calendar.getInstance(); 
c.setFirstDayOfWeek(Calendar.MONDAY); 
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
System.out.println("Date " + c.getTime()); 
+0

雅,我知道这在java 8中的作品,但我使用旧版本的Java 1.7。 – Joe

+1

太可惜了: -/ – Roland

+0

不,我没有用过之前就试过这个东西。现在我得到了同样的结果。 – Joe

相关问题