1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. r4in, 06.07.2012 #1
    r4in

    r4in Threadstarter Android-Hilfe.de Mitglied

    Hi Leute,

    wie bekomme ich aus einem String wie "31.08.2012" die Millisekunden seit 1970 raus?

    Ich muss das aktuelle Datum mit einem Ablaufdatum vergleichen, hat jemand eine Idee?

    Code:
    SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
            try {
                Date date = (Date)formatter.parse("31.08.2012"); 
                System.out.println(date);
                System.out.println(actTime);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
    funzt nicht, Ergebnis ist ( Fri Aug 31 00:00:00 MESZ 2012 ) was hab ich in der Freitag kurz vor Feierabendlaune was übersehen?? ;)


    Danke im vorraus.
     
  2. Thyrion, 06.07.2012 #2
    Thyrion

    Thyrion Ehrenmitglied

    Wie wäre es mit der after()-Methode von Date?

    -> Date | Android Developers


    Ansonsten gäbe es noch compareTo().
    Um die Anzahl der Millisekunden seit 1.1.1970 herauszufinden, gibt es getTime().
     
    r4in gefällt das.
  3. Tom299, 06.07.2012 #3
    Tom299

    Tom299 Android-Experte

    Code:
    date.getTime()
    
    ?
     
    r4in gefällt das.
  4. keinbrain, 06.07.2012 #4
    keinbrain

    keinbrain Fortgeschrittenes Mitglied

    System.currentTimeMillis() millisekundn seit 1970
     
    r4in gefällt das.
  5. r4in, 06.07.2012 #5
    r4in

    r4in Threadstarter Android-Hilfe.de Mitglied

    Also wie die ich die aktuelle millis bekomme weiß ich.
    Ich muss nur diesen String "31.08.2012" in die Millis ungerechnet bekommen, damit ich die vergleichen kann, irgendwie bin ich da gerade zu blöd für.

    Muss ich mir den Tag, Monat und Jahr aus dem String parsen und dann umrechnen, dafür muss es doch ne funktion geben,oder ??
     
  6. Tom299, 06.07.2012 #6
    Tom299

    Tom299 Android-Experte

    Calendar benutzen, da kannst du alles einstellen wie du brauchst
     
    r4in gefällt das.
  7. r4in, 09.07.2012 #7
    r4in

    r4in Threadstarter Android-Hilfe.de Mitglied

    Die Lösung meines Problems war einfacher als gedacht.

    um einen String wie "31.08.2012" in einen long Wert (Millisekunden) zu wandeln, muss man folgendes tun.

    Code:
            String tmpAus = "31.08.2012";
            String tmpAkt = "09.02.2012";
           
            SimpleDateFormat sdfToDate = new            SimpleDateFormat("dd.MM.yyyy");
                Date date1;
                Date date2;
                try {
                    
                    date1 = sdfToDate.parse(tmpAkt);
                    date2 = sdfToDate.parse(tmpAus);
    
       
                   // getTime() gibt die Millisekunden zurück, die man dann   vergleichen kann             
                    Toast.makeText(getApplicationContext(), "Datum  aktuell = " + date1.getTime() + " Datum Auslauf = " + date2.getTime(), Toast.LENGTH_LONG).show();
                } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
    
    hab da wieder zu kompliziert gedacht.

    Danke nochmal für die ganzen Antworten.
     
  8. Thyrion, 09.07.2012 #8
    Thyrion

    Thyrion Ehrenmitglied

    Für den Vergleich brauchst du die Millisekunden aber nicht (bzw. lass sich das Java-Framework darum kümmern).

    EDIT: siehe before(), after() oder compareTo().
     
    Zuletzt bearbeitet: 09.07.2012
    r4in gefällt das.
  9. r4in, 09.07.2012 #9
    r4in

    r4in Threadstarter Android-Hilfe.de Mitglied

    Stimmt hast recht, hab nochmal nachgeguckt und benutze jetzt Date.after(DATE);

    Code:
    private void checkTestphase() throws ParseException{
        
                String tmpAus = "08.07.2012";
                SimpleDateFormat sdfToDate = new SimpleDateFormat("dd.MM.yyyy");
                Date dateAktuell = new Date();
                Date dateAuslauf;
                
                dateAuslauf = sdfToDate.parse(tmpAus);
                
                
            if(dateAktuell.after(dateAuslauf)){
            
                Builder build = new Builder(login.this);
                build.setIcon(R.drawable.alert);
                build.setCancelable(false);
                build.setTitle("Achtung");
                build.setMessage("Die Testphase ist abgelaufen!");
        
                build.setPositiveButton("Programm beenden",
                        new DialogInterface.OnClickListener() {
        
                            public void onClick(DialogInterface dialog, int which) {
                                finish();
                            }
                        });
                build.show();
            }
        }
    
    Danke, muss ich Freitag nicht richtig gelesen haben ;)
     
Du betrachtest das Thema "Datumstring in Integerwert wandeln" im Forum "Android App Entwicklung",