我正在使用
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);
答案 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.time与Java 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。