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

Uhrzeit in UTC

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von joschika77, 18.08.2009.

  1. joschika77, 18.08.2009 #1
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hallo, ich möchte mir die aktuelle Uhrzeit in UTC ausgeben lassen und habe folgende Methode geschrieben. Eigentlich hatte ich sie einst für ne BlackBerry App geschrieben, also nur übernommen. Leider gibt es hier ne Exception. Weiß jemand warum?

    Code:
    //Aufruf der Methode
    CurrentDateTimeToString("GMT","dd.MM.yyyy HH:mm:ss");
    
    //Methode selbst
          public static String CurrentDateTimeToString(String aTimezone,String aDateFormat)
          {
              StringBuffer aDateTimeBuffer = new StringBuffer();
              SimpleDateFormat aSimpleDateFormat = new SimpleDateFormat(aDateFormat);
              Calendar aCalendar = Calendar.getInstance(TimeZone.getTimeZone(aTimezone));
              aCalendar.setTime(aCalendar.getTime());
              aSimpleDateFormat.format(aCalendar,aDateTimeBuffer,null);//hier gibts ne IllegalArgumentException
              return aDateTimeBuffer.toString();
          }
    
     
  2. swordi, 19.08.2009 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    wäre es ne idee die exception zu posten?
     
  3. joschika77, 19.08.2009 #3
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    ja hätte ich getan aber die is leider null. :(
     
  4. swordi, 19.08.2009 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja dann wirds schwer

    brauchst ja nur durch zu debuggen, bei welcher zeile da die null auftritt, dann weißt du schon ein wenig mehr. kann schon sein, dass android da etwas nicht ganz so bereit stellt wie der blackberry
     
  5. joschika77, 19.08.2009 #5
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    na wie im quellcode schon geschrieben, in dieser Zeile tritt die Exception auf.

    Code:
    aSimpleDateFormat.format(aCalendar.getTime(),aDateTimeBuffer,null);
    In der API steht: Throws IllegalArgumentException if there are invalid characters in the pattern.


    Hmmm schön! Heißt mein Format-String ("dd.MM.yyyy HH:mm:ss") stimmt nicht. Hab dann mal ein String aus dem API Beispiel genommen ("yyyyy.MMMMM.dd GGG hh:mm aaa"), geht auch nicht. Laut API sollte es funktionieren.

    http://developer.android.com/reference/java/text/SimpleDateFormat.html#format%28jav.util.Date,%20java.lang.StringBuffer,%20java.text.FieldPosition%29


    Man man zum heulen. :(
     
  6. swordi, 19.08.2009 #6
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    sry das hab ich übersehen

    hmm sehr komisch, da muss irgendwo ein unpassendes zeichen sein, versuchs mal mit einem ganz einfachen string
     
  7. joschika77, 19.08.2009 #7
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Habe mal die Zeile ausgetauscht wo die Exception kam. Das funktioniert zwar, aber ich bekomme nicht die UTC Zeit. Die 2 h werden nicht abgerechnet.
    Stellt sich nur die Frage warum. :confused:

    Code:
                  Date d = aCalendar.getTime();
                  //aSimpleDateFormat.format(aCalendar.getTime(),aDateTimeBuffer,null);
                  String s = aSimpleDateFormat.format(d);
    
     
  8. joschika77, 19.08.2009 #8
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    So habs endlich hinbekommen. Nur zur Vollständigkeit des Threads, falls es jemand braucht.

    Methodenaufruf:
    Code:
    LocalTime2UtcTime(new Date(System.currentTimeMillis()),"GMT","dd.MM.yyyy HH:mm:ss"));
    
    Methode:
    Code:
          public static String LocalTime2UtcTime(Date date,String aTimezone,String aDateFormat)
          {
             Calendar cal = new GregorianCalendar();
             cal.setTime(date);
             DateFormat df = new SimpleDateFormat(aDateFormat);
             df.setTimeZone(TimeZone.getTimeZone(aTimezone));          
             return df.format(cal.getTimeInMillis());
          }
    
    MfG
     
  9. swordi, 19.08.2009 #9
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    aha - warum auch immer

    danke für die auflösung, braucht sicher mal jemand
     

Diese Seite empfehlen