Datumstring in Integerwert wandeln

R

r4in

Ambitioniertes Mitglied
3
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.
 
r4in schrieb:
Ich muss das aktuelle Datum mit einem Ablaufdatum vergleichen, hat jemand eine Idee?
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().
 
  • Danke
Reaktionen: r4in
Code:
date.getTime()
?
 
  • Danke
Reaktionen: r4in
System.currentTimeMillis() millisekundn seit 1970
 
  • Danke
Reaktionen: r4in
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 ??
 
Calendar benutzen, da kannst du alles einstellen wie du brauchst
 
  • Danke
Reaktionen: r4in
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.
 
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:
  • Danke
Reaktionen: r4in
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 ;)
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.383
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.923
OnkelLon
OnkelLon
S
Antworten
9
Aufrufe
1.151
swa00
swa00
Zurück
Oben Unten