Di seguito è riportato il codice che sto usando per accedere alla data in passato, 10 giorni fa. L'output è '20130103' che è la data odierna. Come posso restituire la data di oggi - 10 giorni? Mi sono limitato a utilizzare le classi di date java integrate, quindi non posso usare il tempo di joda.Ottieni la data in passato utilizzando java.util.Date
package past.date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class PastDate {
public static void main(String args[]){
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date myDate = new Date(System.currentTimeMillis());
Date oneDayBefore = new Date(myDate.getTime() - 10);
String dateStr = dateFormat.format(oneDayBefore);
System.out.println("result is "+dateStr);
}
}
Hai guardato i [javadocs] (http://docs.oracle.com/javase/7/docs/api/java/util/Date.html)? Il costruttore della data accetta un valore in millisecondi, non un valore in giorni. Inoltre, per prendere in considerazione i problemi di timezone/DST, guarda invece 'Calendar'. – BalusC
modifica questa risposta: http://stackoverflow.com/questions/5894726/how-do-i-do-calendar-arithmetic-with-java-util-date – mcalex
Non risponde alla tua domanda di per sé, ma potresti essere interessato a http://stackoverflow.com/questions/11727933/add-30-days-to-date-in-java?rq=1 Questo ti dice come aggiungere ai giorni, forse potresti trasporlo per sottrarre. – sircapsalot