Bonjour à tous,
je suis en train de développer une application Android qui récupère des logs et qui les envoie à une autre application server en Java.
Pour simplifier le transfert de logs d'une application à l'autre j'utilise une classe commune. le transfert des logs se passe bien (par socket et par l'intermédiaire de fichiers txt). La récupération coté serveur aussi (les fichiers textes sont tous corrects).
Mon problème est le suivant. sur mon serveur, je lis les fichiers txt afin de recréer une multitude d'objets Logs.
Une fois fait, quand j'affiche la méthode .toString() d'un logs, je n'ai pas le même résultat que sur Android.
ex :
Comme vous pouvez le voir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 0 - 09/05/2014- 20:55:20; Aircraft: ABCD-E, 13*343*444; Location: lat. 43.36589587451, lg. 3.125487986565, alt. 5 154m, Speed: 55kt; FlightTime: 558 541 584ms; Airport: ABCD, dist: 15 551m, bearing: -128 0 - 09/06/2014- 18:55:20; Aircraft: ABCD-E, 13*343*444; Location: lat. 43,366, lg. 3,125, alt. 5154m, Speed: 55kt; FlightTime: 558*541*584ms; Airport: ABCD, dist: 15551m, bearing:- 128
- la date n'est pas la bonne. il s'agit pourtant de la date du jour. Si je fait un .getMonth pour tester, il me retourne bien 05 et non pas 06.
- l'heure n'est pas la bonne
- les doubles latitude et longitude ne sont pas inscrit en entier. Si je fait un log.getLatitude() j'ai la valeur complète qui apparaît.
- l'altitude n'a pas l'espace entre le millier et le cent tout comme la distance.
- pour le bearing, le chiffre - est décalé du nombre.
Pour information, les 2 objets affichés plus haut sont fait de la même manière : constructeur complet + affichage de la méthode .toString().
J'ai l'impression de rater qqchose sur l'affichage server. les variables de l'objet sont correctes mais pas leurs affichages.
voici ma méthode ToString():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public String MessageFormat loggerFormat = new MessageFormat("{0} -{1, date, dd/MM/yyyy}-{1, time, HH:mm:ss}; Aircraft: {12}, {13}; {2}; EngineIsOn: {3}; Location: lat. {4}, lg. {5}, alt.{6, number, ####.##}m, Speed: {7}kt; FlightTime: {8}ms; Airport: {9}, dist:{10, number, ###.##}m, bearing:{11, number, ###.##}\n"); TimeZone tz = TimeZone.getTimeZone("UTC"); Object formats[] = loggerFormat.getFormats(); ((SimpleDateFormat)formats[1]).setTimeZone(tz); ((SimpleDateFormat)formats[2]).setTimeZone(tz); Object args[] = {code, time, message, engineIsOn, latitude, longitude, altitude, speed, flightTime, airport.getOaciCode(), distance, bearing, aircraftID, aircraftIndex}; return (loggerFormat.format(args));
J'utilise un JtextPane pour l'affichage serveur mais en mode console s'est le même problème. Avez vous des pistes? je suis vraiment bloqué là et je sais plus quoi faire.
Merci par avance. et bon Weekend
Partager