如何从java中的当前日期提前7天获取日期

时间:2013-06-07 10:34:39

标签: java date datetime

我正在使用

DateFormat dateFormat = 
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Date date = new Date();
String fromdate = dateFormat.format(date);

获取当前日期,我如何才能获得7天前的日期。例如,如果今天是2013年6月7日,我如何才能获得2013年5月31日的格式,与日期格式化程序中定义的格式相同。

得到了解决方案..谢谢大家:)

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

        Date date = new Date();
        String todate = dateFormat.format(date);

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -7);
        Date todate1 = cal.getTime();    
        String fromdate = dateFormat.format(todate1);

6 个答案:

答案 0 :(得分:48)

您可以使用Calendar类:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -7);
System.out.println("Date = "+ cal.getTime());

但正如@Sean Patrick Floyd所说,Joda-time是Date最好的Java库。

答案 1 :(得分:19)

或使用JodaTime

DateTime lastWeek = new DateTime().minusDays(7);

答案 2 :(得分:11)

如果您愿意,可以使用此功能继续使用日期类型和更易读的代码:

import org.apache.commons.lang.time.DateUtils;
...
Date yourDate = DateUtils.addDays(new Date(), *days here*);

答案 3 :(得分:8)

使用Calendar-API:

// get Calendar instance
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());

// substract 7 days
// If we give 7 there it will give 8 days back
cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-6);

// convert to date
Date myDate = cal.getTime();

希望这会有所帮助。玩得开心!

答案 4 :(得分:7)

Java现在有一个非常好的内置日期库,java.timeJava 8捆绑在一起。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Foo {
    public static void main(String[] args) {

        DateTimeFormatter format =
            DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");

        LocalDateTime now = LocalDateTime.now();
        LocalDateTime then = now.minusDays(7);

        System.out.println(String.format(
            "Now:  %s\nThen: %s",
            now.format(format),
            then.format(format)
        ));
        /*
            Example output:
                Now:  2014-05-09T14:51:48Z
                Then: 2014-05-02T14:51:48Z
         */
    }
}

答案 5 :(得分:1)

对于所有与日期相关的功能,您应该考虑使用Joda Library。 Java的日期api设计非常糟糕。 Joda提供了非常好的API。