2017-04-06 1 views
0

Wenn das Datum ist 2017-03-30, dass ich das Datum 2017-03-23-2017-03-30Wie die letzten sieben Tage nach bestimmtem Datum holen

Ich versuche, diesen Code holen will sie ändert meine String zu verwenden, um Date Format

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 

Date dateParse = sdf.parse("2017-03-30"); 

dann bin ich stecken, weil ich die Referenz nehmen ist die aktuelle Zeit wie diese

Calendar c = Calendar.getInstance(); 
c.add(Calendar.DATE, -7); 
//may be my dateParse should put here , but i don't know how to do 
Date monday = c.getTime();//it get the current time 
String preMonday = sdf.format(monday); 
erhaltenKann mir jemand beibringen, wie man diese sieben Tage holt? Danke im Voraus.

+0

Überprüfen Sie meine Antwort unter –

Antwort

1

Parse das Datum:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date myDate = sdf.parse("2017-03-30"); 

erste Lösung 1) und dann entweder herauszufinden, wie viele Millisekunden Sie subtrahieren müssen:

Date newDate = new Date(myDate.getTime() - 604800000L); // 7 * 24 * 60 * 60 * 1000 

Zweite Lösung 2) Oder verwenden Sie die API von der bereitgestellten java.util.Calendar Klasse:

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(myDate); 
calendar.add(Calendar.DAY_OF_YEAR, -7); 
Date newDate = calendar.getTime(); 

Dann, wenn Sie brauchen, um es in einen String zu konvertieren zurück:

String date = dateFormat.format(newDate); 

Diese Antwort ist von here

EDIT: Wenn Sie Ausgabe als 2017.03.29 2017.03.28 2017.03.27 brauchen ...... 2017.03.23 versuchen dann unter Code

for(int i = 1; i <= 7; i++){ 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(myDate); 
    calendar.add(Calendar.DAY_OF_YEAR, -i); 
    Date newDate = calendar.getTime(); 
    String date = dateFormat.format(newDate); 
    //here in date you can get all date from and output as 2017-03-29 2017-03-28 2017-03-27 ...... 2017-03-23 
} 

Hoffnung, die Sie brauchen diese

+0

danke für Ihre Informationen, aber ich war verwirrt über die Variable newDate. Es gibt zwei newDate, die das newDate für 'String date = dateFormat.format (newDate) verwendet;'? –

+0

Ich versuche das erste newDate, das Ergebnisdatum ist 2017-03-23, ich habe nur einen Tag, kann ich sieben Tage bekommen? –

+0

Überprüfen Sie meine bearbeitete Antwort bro. Es gibt zwei Lösungen bitte überprüfen. Wenn Sie irgendein Problem haben, fragen Sie bitte frei Ich werde Ihnen helfen @ 徐博俊 –

2

Sie den Code unten

können
SimpleDateFormatdateFormat = new SimpleDateFormat("dd MMM yyyy"); 
     Calendar c = Calendar.getInstance(); 
     String date = dateFormat.format(c.getTime()); 

    c.add(Calendar.DATE, 7); 
     String date1 = dateFormat.format(c.getTime()); 
+0

Danke Mann, aber Ihr Code wie meine Frage, das Datum ist das aktuelle Datum nicht mein bestimmtes Datum. –

+0

Dies kann Ihnen helfen, das aktuelle Datum zu erhalten String currentDateTimeString = DateFormat.getDateTimeInstance(). Format (new Date()); –

+0

danke für deine begeisterung, ich bekomme die lösung jetzt, danke. –

Verwandte Themen