如何从当前date减less一个月,并使用java存储在datevariables?

如何从当前date减less一个月,并想使用此代码在java.util.Datevariablesim疼痛,但它显示错误在第二行

  java.util.Date da = new Date(); da.add(Calendar.MONTH, -1); //error 

如何在java.util.Datevariables中存储这个date?

使用日历:

 Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, -1); Date result = cal.getTime(); 
 Calendar calNow = Calendar.getInstance() // adding -1 month calNow.add(Calendar.MONTH, -1); // fetching updated time Date dateBeforeAMonth = calNow.getTime(); 

使用JodaTime :

 Date date = new DateTime().minusMonths(1).toDate(); 

JodaTime为date操作提供了一个方便的API。

请注意,类似的Date API将在JDK8中与JSR310一起引入 。

你可以使用Calendar

  java.util.Date da = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(da); cal.add(Calendar.MONTH, -1); da = cal.getTime(); 

从Java 8开始,build议的方法是使用date时间API而不是Calendar

如果你想要返回一个Date对象:

 Date date = Date.from(ZonedDateTime.now().minusMonths(1).toInstant()); 

如果您不需要确切的Date对象,则可以直接使用包提供的类,甚至可以在其他时区中获取date:

 ZonedDateTime dateInUTC = ZonedDateTime.now(ZoneId.of("Pacific/Auckland")).minusMonths(1);