wake-up-neo.com

Android, wie Sie das Datum von morgen erhalten

In meiner Android-Anwendung. Ich muss das Datum von morgen anzeigen, zum Beispiel ist heute der 5. März, also muss ich als 6. März anzeigen. Ich kenne den Code für das heutige Datum, den Monat und das Jahr.

datumsberechnung

    GregorianCalendar gc = new GregorianCalendar();
    yearat = gc.get(Calendar.YEAR);
    yearstr = Integer.toString(yearat);
    monthat = gc.get(Calendar.MONTH) + 1;
    monthstr = Integer.toString(monthat);
    dayat = gc.get(Calendar.DAY_OF_MONTH);
    daystr = Integer.toString(dayat);

Wenn ich den Code habe

dayat = gc.get(Calendar.DAY_OF_MONTH) + 1;

wird es das Datum von morgen anzeigen. oder einfach nur ein Datum zum heutigen Datum hinzufügen? Wenn heute beispielsweise der 31. Januar ist, wird dieser mit dem obigen Code als 1 oder 32 angezeigt? Wenn es 32 anzeigt, welche Änderung muss ich vornehmen?

25
Jocheved
  1. Holen Sie sich das heutige Datum als Calendar.

  2. Fügen Sie 1 Tag hinzu.

  3. Format für Anzeigezwecke.

Zum Beispiel,

GregorianCalendar gc = new GregorianCalendar();
gc.add(Calendar.DATE, 1);
// now do something with the calendar
46
laalto

Verwenden Sie den folgenden Code, um das Datum von morgen anzuzeigen

Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();

calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();

Verwenden Sie SimpleDateFormat, um das Datum als Zeichenfolge zu formatieren:

DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");

String todayAsString = dateFormat.format(today);
String tomorrowAsString = dateFormat.format(tomorrow);

System.out.println(todayAsString);
System.out.println(tomorrowAsString);

Drucke:

05-Mar-2014
06-Mar-2014
38

Mit Java.util.Date und Java.util.Calendar kann man schlecht arbeiten. Ich schlage vor, Sie verwenden JodaTime, das eine viel sauberere/schönere API hat. JodaTime ist heutzutage ziemlich normal.

http://www.joda.org/joda-time/#Why_Joda-Time

Beachten Sie, dass JDK 8 eine neue Datums-/Uhrzeit-API einführt, die stark von JodaTime beeinflusst wird.

4
lance-java
Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();

calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();
4
Pararth

sie müssen nur 1 an Ihrem Kalendertag hinzufügen.

GregorianCalendar gc = new GregorianCalendar();
gc.add(Calendar.DATE, 1);
4
Piyush

Andere Optionen:

Calendar tomorrow = Calendar.getInstance();
tomorrow.roll(Calendar.DATE, true);

oder

tomorrow.roll(Calendar.DATE, 1);

roll kann auch verwendet werden, um eine negative Zahl zu übergeben, z.

Calendar yesterday = Calendar.getInstance();
yesterday.roll(Calendar.DATE, -1);
3

Die Klassen Java.util.Date und .Calendar sind bekanntermaßen lästig. Vermeide sie. Verwenden Sie stattdessen entweder Joda-Time library oder das neue Java.time-Paket im Paket mit Java 8 .

Beispielcode, der die Bibliothek Joda-Time 2.3 verwendet.

DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime now = new DateTime( timeZone );
DateTime tomorrow = now.plusDays( 1 );
String output = DateTimeFormat.forPattern( "FF" ).withLocale(Locale.FRANCE).print( tomorrow );
2
Basil Bourque

die ersten Antworten decken die Möglichkeiten ziemlich genau ab.

Date lTomorrow = DateUtils.addDays(new Date(), 1);
2
Stefan Beike

Holen Sie sich das heutige Datum mithilfe des Kalenders und fügen Sie dann 1 Tag hinzu.

1
roshanpeter

Der beste Weg für die Einstellung am nächsten Tag ist

 public void NextDate()
{

    final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);

    // set current date into textview
    e_date.setText(new StringBuilder()
            // Month is 0 based, just add 1
            .append(mDay+1).append("-").append(mMonth + 1).append("-")
            .append(mYear).append(" "));



}
0
Kunal Nikam

Das funktioniert gut für mich !!

    Date currentDate = new Date();// get the current date
    currentDate.setDate(currentDate.getDate() + 1);//add one day to the current date
    dateView.setText(currentDate.toString().substring(0, 10));// put the string in specific format in my textView

viel Glück!!

0
yoc
 String  lastDate="5/28/2018";
        Calendar calendar = Calendar.getInstance();
        String[] sDate=lastDate.split("/");
        calendar.set(Integer.parseInt(sDate[2]),Integer.parseInt(sDate[0]),Integer.parseInt(sDate[1]));

        DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");

//        String todayAsString = dateFormat.format(today);

        for (int i=1;i<29;i++)
        {
            calendar.add(Calendar.DAY_OF_YEAR,1);
//            td[i].setText(dateFormat.format(calendar.getTime()));
          System.out.println(dateFormat.format(calendar.getTime()));  
        }
0

Versuchen Sie es so ..

dayat = gc.add(Calendar.DATE, 1);
0
Naveen
Just call this method and send date from which you want next date     

public String nextDate(Date dateClicked) {
           // 
String next_day;
calander_view.setCurrentDayTextColor(context.getResources().getColor(R.color.white_color));
            //calander_view.setCurrentDayBackgroundColor(context.getResources().getColor(R.color.gray_color));
            SimpleDateFormat dateFormatForDisplaying = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
            String date_format = dateFormatForDisplaying.format(dateClicked);
            SimpleDateFormat simpleDateformat = new SimpleDateFormat("E"); // the day of the week abbreviated
            final Calendar calendar = Calendar.getInstance();
            try {
                Date date = dateFormatForDisplaying.parse(date_format);
                calendar.setTime(date);
                calendar.add(Calendar.DATE, 1);
                String nex = dateFormatForDisplaying.format(calendar.getTime());
                Date d1 = dateFormatForDisplaying.parse(nex);
                String day_1 = simpleDateformat.format(d1);
                next_day = nex + ", " + day_1;
            } catch (ParseException e) {
                e.printStackTrace();
            }

            return next_day;

        }
0
Mohit Hooda

tl; dr

Java.time.LocalDate.now()
                   .plusDays( 1 ) 

Java.time

Alle anderen Antworten sind veraltet und verwenden die lästigen alten Klassen Date & Calendar oder das Joda-Time-Projekt, das sich jetzt im Wartungsmodus befindet. Der moderne Ansatz verwendet die Klassen Java.time.

LocalDate

Die Klasse LocalDate repräsentiert einen Datumswert ohne Uhrzeit und ohne Zeitzone.

Eine Zeitzone ist für die Bestimmung eines Datums von entscheidender Bedeutung. Für jeden Moment variiert das Datum weltweit je nach Zone. Zum Beispiel ist ein paar Minuten nach Mitternacht in Paris Frankreich ein neuer Tag, während noch „gestern“ in Montréal Québec .

Wenn keine Zeitzone angegeben ist, wendet die JVM implizit ihre aktuelle Standardzeitzone an. Diese Standardeinstellung kann sich jederzeit ändern, sodass Ihre Ergebnisse variieren können. Es ist besser, Ihre gewünschte/erwartete Zeitzone explizit als Argument anzugeben.

Geben Sie ein richtiger Zeitzonenname im Format continent/region An, z. B. America/Montreal , Africa/Casablanca oder Pacific/Auckland. Verwenden Sie niemals die Abkürzung mit 3-4 Buchstaben wie EST oder IST, da diese nicht echte Zeitzonen sind, nicht standardisiert und nicht einmalig (!) .

ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate today = LocalDate.now( z ) ;

Von diesem LocalDate können Sie rechnen, um den folgenden Tag zu bekommen.

LocalDate tomorrow = today.plusDays( 1 ) ;

Streicher

Um einen String zu generieren, der den Wert des Objekts LocalDate darstellt, rufen Sie toString für Text auf, der gemäß dem Standard ISO 8601 formatiert ist: YYYY-MM-DD.

Durchsuchen Sie Stack Overflow nach DateTimeFormatter , um Zeichenfolgen in anderen Formaten zu generieren.


Über Java.time

Das Java.time Framework ist in Java 8 und höher. Diese Klassen ersetzen die lästigen alten Legacy Datum-Uhrzeit-Klassen wie - Java.util.Date , Calendar , & SimpleDateFormat .

Das Joda-Time -Projekt, das sich jetzt im Wartungsmodus befindet, rät zur Migration in die Java.time -Klassen.

Weitere Informationen finden Sie im Oracle Tutorial . Durchsuchen Sie Stack Overflow nach vielen Beispielen und Erklärungen. Spezifikation ist JSR 31 .

Woher bekommen Sie die Java.time-Klassen?

0
Basil Bourque