1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Datum & Zeit formatieren

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von sem_thesis, 29.03.2011.

  1. sem_thesis, 29.03.2011 #1
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Hallo!

    Ich habe ein ganz kleines Problem und schaff' es einfach nicht, das zu lösen.

    Ich will das Datum im Format "dd-MM-yyyy" darstellen.
    Die Zeit soll im Fromat "HH:mm:ss" dargestellt werden.

    Jetzt habe ich mir dazu die Klasse SimpleDateFormat genau angeschaut --> SimpleDateFormat | Android Developers


    Mein Code sieht folgendermassen aus:

    Code:
    SimpleDateFormat d = new SimpleDateFormat("dd-MM-yyyy");
    SimpleDateFormat t = new SimpleDateFormat("HH:mm:ss");
    
    String date = d.format(Date(0));
    String time = t.format(Date(0));
    
    Date wird nicht als Methode anerkannt?!?!
    Funktioniert jetzt überhaupt nicht und ich kann es mit Toast auch nicht anzeigen lassen :angry:


    Vorschläge?
     
  2. Neeldarax, 30.03.2011 #2
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Was soll "Date(0)" darstellen? Das ist ein Methodenaufruf, wenn du diese nicht hast, dann ist der Fehler doch klar.

    Oder hast du den Code einfach falsch abgeschrieben?
    Code:
    new Date(0);
    regards
     
  3. sem_thesis, 30.03.2011 #3
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Code:
                 String date = d.format(new Date(0));
                 String time = t.format(new Date(0));
     
    gibt Fehler aus.

    Code:
                String time = t.format(new Date(0));
    
    wird von Eclipse akzeptiert.
    Zeigt mit Toast 01:00:00 an (was???)
     
  4. DieGoldeneMitte, 30.03.2011 #4
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Welche(n) Fehler?

    Das einzige, was meine Kristallkugel hergibt ist, dass Du eventuell noch eine andere Variable namens d im selben scope definiert haben könntest.
     
  5. sem_thesis, 30.03.2011 #5
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Ok.
    Ich habe diesen Code jetzt in einer LISTENER-Klasse einer Service-Klasse hineingeschrieben:


    Code:
        private class MyPhoneStateListener extends PhoneStateListener {
            
            Date dateinstance = new Date();
    
            SimpleDateFormat formatdate = new SimpleDateFormat("dd-MM-yyyy");
            SimpleDateFormat formattime = new SimpleDateFormat("HH:mm:ss");
    
            String date = formatdate.format(dateinstance);
            String time = formattime.format(dateinstance);
            
              String name;
              String phonenumber;
              String duration;
              String callclassification;
              
              public void onCallStateChanged(int state,String incomingNumber){
    
                  
                  // Collect new Phone Logs //
                  name = android.provider.CallLog.Calls.CACHED_NAME;
                  phonenumber = android.provider.CallLog.Calls.NUMBER;
                  duration = android.provider.CallLog.Calls.DURATION;
                  
                  Log.d(TAG, "STATE HAS CHANGED!");
    
                  
                  switch(state){
                      case TelephonyManager.CALL_STATE_IDLE:
                          Log.d(TAG, "---booooooo-----");
                          break;
                      case TelephonyManager.CALL_STATE_OFFHOOK:
                          callclassification = "Outgoing Call";
                          Log.d(TAG, "Calling somebody");
                          Log.d(TAG, date);
                          Log.d(TAG, time);
                          Log.d(TAG, callclassification);
                          Log.d(TAG, name);
                          Log.d(TAG, phonenumber);
    
                          break;
                case TelephonyManager.CALL_STATE_RINGING:
                        Log.d(TAG, "RINGING");
                          Log.d(TAG, date);
                          Log.d(TAG, time);
                          callclassification = "Incoming Call";
                          Log.d(TAG, callclassification);
                          Log.d(TAG, name);
                          Log.d(TAG, phonenumber);
                        break;
                  }
                  
    
                  
              }
    
        }
    
    

    Die Date-Klasse sollte jedesmal bei State-Change neu erstellt werden.
    Die Log-Daten zeigen aber immer die GLEICHE Zeit an.

    Was soll das????
     
    Zuletzt bearbeitet: 30.03.2011
  6. Kranki, 30.03.2011 #6
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    Wieso sollte die jedesmal neu erstellt werden? Der Listener wird nur einmal erstellt. Bei State-Change wird dann jedesmal onCallStateChanged auf dem bereits bestehenden Listener-Objekt aufgerufen.
    In der Methode werden Datum und Uhrzeit aber nicht neu zugewiesen, folglich stehen da immer noch die Werte drin, die bei Objekterzeugung reingesetzt wurden.
     
    sem_thesis bedankt sich.
  7. sem_thesis, 30.03.2011 #7
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    0
    Registriert seit:
    06.03.2011
    Phone:
    Nexus One
    Das ist komplett logisch - dummer Fehler.

    Danke :thumbsup:
     

Diese Seite empfehlen