IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Réception de date en base SQLite


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 184
    Points : 87
    Points
    87
    Par défaut Réception de date en base SQLite
    Voici mon problème, j'ai un web service qui m'envoie des informations dans ces infos il y a des dates. C'est dates proviennent d'une base en mysql.
    Quand je les réceptionne, je fais un dateFormat() pour transformer les infos reçu et pour les injecter en base. Le problème c'est quand je lui demande de m'afficher ces dates là il m'affiche 01-01-113 ......

    Voici le code lors de la réception des informations par rapport au W-S:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(keys.compareTo("date")==0){
    	String date = champs.getProperty("value").toString();
    	DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
    						 				//DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    	Date ts = formatter.parse(date);
    	newValues.put(PwtProvider.M_DATE, ts.getTime());}
    }
    Voici maintenant le code pour l'affichage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Long date = ListeEvenement.get(position).getDate().getTime();
    holder.dates.setText("Date : " + timeStamp2date(date) + annee);
    ....... fonction qui me renvoie la date.
    public static String timeStamp2date (long ts)
    {
    	java.text.SimpleDateFormat formatter = new SimpleDateFormat("dd/MM");
    	//java.text.SimpleDateFormat formatter = new SimpleDateFormat("EEEE dd MMMM yyyy");
    	return formatter.format(ts); 
    }
    Merci pour votre aide .

    Loïc

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 184
    Points : 87
    Points
    87
    Par défaut
    C'est bon j'ai trouvé la soluce. Il suffisait juste au niveau de la mise en forme de mettre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .....
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");...
    Merci quand même, j'espère que la soluce solutionnera des pbls.

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Haa c'est tout le problème de formatage des dates....
    Chaque pays à sa propre manière de les "traduire" en chaîne.

    Il existe néanmoins deux cas "simple":
    Le format W3C: 'YYYY/MM/DD'T'HH:mm:ss.sssZ', par exemple '2012/01/13T12:24:45.281Z' ou 'YYYY/MM/DD' (mais je n'aime pas stocker des "dates pures" j'explique pourquoi après).
    Le format "Long" (millesecondes depuis le 1er Jan 1970) mon préféré car beaucoup plus simple à gérer pour la comparaison directe en SQL.
    (un jour avant = DATE-86400000)

    Pourquoi je n'aime pas stocker des dates 'simple', parce qu'il existe une zone sur la terre, ou à 20km prêt, on est à 1 jour d'écart....
    Et quand on dit cela s'est produit le 12 janvier 2013, ça peut vouloir dire entre le '11/01/2013, 12:00 GMT' et le '13/01/2013, 12:00 GMT'...
    Comment alors afficher la date à un utilisateur en France ?

    Sinon, pour traduire du SQL... il ya java.sql.Date aussi (qui évite d'avoir à "trouver" le bon format) et bien sur java.sql.Timestamp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formatter une date dans une base Sqlite
    Par noftal dans le forum VB.NET
    Réponses: 6
    Dernier message: 28/10/2013, 02h27
  2. Compresser/Compacter une base Sqlite
    Par Gold.strike dans le forum SQLite
    Réponses: 1
    Dernier message: 18/07/2006, 10h12
  3. faire un filtrage par date sur base de donnee "delphi
    Par medsoft dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/02/2006, 17h03
  4. problème champ date dans base oracle
    Par ludovik dans le forum Oracle
    Réponses: 6
    Dernier message: 25/07/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo