Jetzt kostenlos registrieren: Mitglieder surfen ohne Werbung!

Uhrzeit in UTC

  • 8 Antworten
  • Neuester Beitrag
Diskutiere Uhrzeit in UTC im Android App Entwicklung im Bereich Betriebssysteme & Apps.
J

joschika77

Fortgeschrittenes Mitglied
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();
      }
 
S

swordi

Gewerbliches Mitglied
wäre es ne idee die exception zu posten?
 
J

joschika77

Fortgeschrittenes Mitglied
ja hätte ich getan aber die is leider null. :(
 
S

swordi

Gewerbliches Mitglied
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
 
J

joschika77

Fortgeschrittenes Mitglied
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. :(
 
S

swordi

Gewerbliches Mitglied
sry das hab ich übersehen

hmm sehr komisch, da muss irgendwo ein unpassendes zeichen sein, versuchs mal mit einem ganz einfachen string
 
J

joschika77

Fortgeschrittenes Mitglied
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);
 
J

joschika77

Fortgeschrittenes Mitglied
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
 
S

swordi

Gewerbliches Mitglied
aha - warum auch immer

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