我有一个要求,我不能使用JodaDate / Time。我需要使用java.util.Date并需要一个返回一周开始日期的函数。
功能签名:
public java.util.Date getWeekStart(java.util.Date date)
我可以假设这周从周日开始。我做了足够多的研究,但所有解决方案都在JodaDate上。我可以单独使用java.util.Date
吗?
答案 0 :(得分:4)
请尝试以下代码:
public static Date getWeekStart(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK) - c.getFirstDayOfWeek();
c.add(Calendar.DAY_OF_MONTH, -dayOfWeek);
Date firstDate = c.getTime();
return firstDate;
}
当前日期的 Input
将导致以下输出:
输出:
Sun Oct 26 11:46:26 IST 2014
此处的重点是使用Calender
了解更多信息,请访问this链接。
答案 1 :(得分:1)
您可以使用日历类,它更容易,更灵活。检查以下功能。它可以帮到你。
public Date getFirstDayOfWeek(Date date){
Calendar cal=Calendar.getInstance();
cal.setTime(date);
// cal.setFirstDayOfWeek(1); //No need to set , if it is as per local, 1 for sunday and so on.
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
return cal.getTime();
}
它将返回一周的第一天。