给定java.util.Date对象,返回一周的开始日期

时间:2014-11-01 05:51:15

标签: java date

我有一个要求,我不能使用JodaDate / Time。我需要使用java.util.Date并需要一个返回一周开始日期的函数。

功能签名:

public java.util.Date getWeekStart(java.util.Date date)

我可以假设这周从周日开始。我做了足够多的研究,但所有解决方案都在JodaDate上。我可以单独使用java.util.Date吗?

2 个答案:

答案 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();
}

它将返回一周的第一天。