Datum & Zeit formatieren

  • 6 Antworten
  • Neuester Beitrag
Diskutiere Datum & Zeit formatieren im Android App Entwicklung im Bereich Betriebssysteme & Apps.
S

sem_thesis

Fortgeschrittenes Mitglied
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?
 
N

Neeldarax

Fortgeschrittenes Mitglied
sem_thesis schrieb:
Date wird nicht als Methode anerkannt?!?!
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
 
S

sem_thesis

Fortgeschrittenes Mitglied
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???)
 
DieGoldeneMitte

DieGoldeneMitte

Experte
sem_thesis schrieb:
Code:
             String date = d.format(new Date(0));
             String time = t.format(new Date(0));
gibt Fehler aus.
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.
 
S

sem_thesis

Fortgeschrittenes Mitglied
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:
Kranki

Kranki

Ehrenmitglied
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.
 
S

sem_thesis

Fortgeschrittenes Mitglied
Das ist komplett logisch - dummer Fehler.

Danke :thumbsup: