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

Discussion :

Format de la date dans une migration Unix/Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Par défaut Format de la date dans une migration Unix/Linux
    Bonjour à tous,

    Je ne sais pas si je suis dans la bonne section
    J'ai une application Qt/C++ que j'utilise sous Unix et que je dois migrer sous Linux. (ps: je n'y connais absolument rien en Qt et très peu en C++)

    Le problème vient du fait que l'IHM affiche des fichiers avec leur date de modification.

    - Sous Unix (SunOS 5.8, Qt 4.2.2) j'ai par exemple: - Sous Linux (RedHat5, Qt 4.4.2) ça donne: (avec le même code et les mêmes compilateurs). Et mon chef gueule parce qu'il veut que le format sous Linux soit le même que sous Unix.

    Mes recherches sont pour l'instant infructueuses... peut-être que quelqu'un a une idée?
    merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    Citation Envoyé par tiresias54 Voir le message
    Bonjour à tous,

    Et mon chef gueule parce qu'il veut que le format sous Linux soit le même que sous Unix.
    Si tu peux, change de chef

    sinon tu est bon à faire une classe 'Date' en C++, qui affichera le même format quel que soit l'OS ...

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Faut pas exagérer, c'est le rôle de QLocale de gérer ça. Le format des dates est donné par le système, pas par Qt (sinon tu aurais le même partout), et c'est bien normal parce que par exemple le premier format ne parlera pas trop à un Chinois.

    Donc deux solutions :
    - soit tu mets ton système Linux en français, qu'il affiche la date au format français comme l'autre
    - soit tu forces ça dans le code (QLocale::setDefault(QLocale::France);) (à appeler dans le main.cpp, au début de main() après l'initialisation de QApplication, sans oublier #include <QLocale>)

    Voir la doc : http://qt-project.org/doc/qt-4.8/qlocale.html (bon après tu utilises des versions antédiluviennes de Qt, j'espère que tout ça y était déjà).

    Si ça ne fonctionne pas, il faudra des infos supplémentaires sur l'objet et le code qui affiche les dates...

  4. #4
    Membre très actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Par défaut
    j'ai mis ça dans mon main:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    //****************
    //* Include file *
    //****************
    //*--------------------------------------*
    //* the standard or system include files *
    //*--------------------------------------*
    #include <QtGui/QApplication>
     
    //*--------------------------*
    //* the user's include files *
    //*--------------------------*
    #include "C_Global.h"
    #include "C_EnvironmentManager.h"
    #include "C_InterfaceManager.h"
    #include <stdio.h>
     
    using namespace global;
     
    #include <QString>
    #include <QLocale>
    using namespace std;
    using namespace EnvMgr;
    using namespace InterfaceMgr;
     
    //*************************************************************************
    //* Function: main
    //**************************************************************************
    int main(int argc, char *argv[])
    {
     
     
        QApplication a(argc, argv);
        QLocale::setDefault(QLocale::France);
    mais ça ne fonctionne pas ....

    Sinon, je trouve des choses de ce genre dans le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString strTime = QDate::currentDate().toString("yyMMdd")+QTime::currentTime().toString("_hhmmss");

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    D'accord oui c'est comme ça qu'on construit une date. Ça ne résoudra pas le problème de langue. Je pense qu'il faut pas te focaliser sur les dates et chercher plutôt à savoir qu'est-ce qui dit à ton application que ton Unix est en FR et ton Linux est en US. Tu as essayé déjà de le mettre en FR ?

    Tu as aussi la méthode POSIX setlocale() mais là je ne connais pas assez pour t'aider plus.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    bonjour essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString j[] ={"lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"};
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString m[] = {"janvier","fevrier","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","decembre"};
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QDate dte = QDate::currentDate();
    QString jour(j[(dte.dayOfWeek())-1]);
    QString moi(m[(dte.month ())-1]);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     QString strTime = jour +" "+ dte.day+" "+ moi +" "+ dte.year();

Discussions similaires

  1. [MySQL] choix du format de la date dans une table et insertion
    Par lisa.a dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 27/02/2009, 20h55
  2. Réponses: 13
    Dernier message: 27/12/2006, 17h52
  3. [SQL INTERBASE] format de date dans une requete sql
    Par arnolpourri dans le forum InterBase
    Réponses: 5
    Dernier message: 03/07/2006, 11h42
  4. Réponses: 1
    Dernier message: 17/11/2005, 16h48
  5. [oracle][delphi] Problème format de date dans une requete
    Par le_parrain dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/07/2005, 10h12

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