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

Java Discussion :

Signification du terme "field" pour dateFormat()


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut Signification du terme "field" pour dateFormat()
    Bonjour,

    Je voudrais programmer un calendrier pour un site web en Java, je me suis plongée dans la doc de Sun en anglais mais je n'arrive pas à comprendre à quoi fait référence le terme "field". Est-ce que c'est une partie de la date? Pourriez-vous m'expliquer?

    Voilà la page en question :
    http://java.sun.com/j2se/1.4.2/docs/...ateFormat.html

    En particulier je ne comprends pas ces définitions de méthodes où l'on utilise le terme Field:

    Nested Class Summary :
    static class DateFormat.Field
    Defines constants that are used as attribute keys in the AttributedCharacterIterator returned from DateFormat.formatToCharacterIterator and as field identifiers in FieldPosition.

    Field Summary :
    static int AM_PM_FIELD
    Useful constant for AM_PM field alignment.

    protected Calendar calendar
    The calendar that DateFormat uses to produce the time field values needed to implement date and time formatting.

    static int DATE_FIELD
    Useful constant for DATE field alignment.

    static int DAY_OF_WEEK_FIELD
    Useful constant for DAY_OF_WEEK field alignment.

    static int DAY_OF_WEEK_IN_MONTH_FIELD
    Useful constant for DAY_OF_WEEK_IN_MONTH field alignment.

    static int DAY_OF_YEAR_FIELD
    Useful constant for DAY_OF_YEAR field alignment.

    etc...

    Avec mes remerciements.

    Lenorah

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    cela doit être le nom ou complément du nom pour les constantes de la classe.

    Si tu regardes les méthodes get et set, cela devrait être plus clair je pense.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Lenorah Voir le message
    Defines constants that are used as attribute keys in the AttributedCharacterIterator returned from DateFormat.formatToCharacterIterator and as field identifiers in FieldPosition.
    Si tu n'utilise pas ces méthodes, tu n'aura pas besoin de ces constante. Ca sert au formateur à construire progressivement la date ou la string représentant la date. En pratique, tu n'as même pas besoin de savoir quelles existent.

    Utilise simplement la classe SimpleDateFormat et t'aura tout ce dont tu aura besoin.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut
    Merci!
    Donc un field c'est une partie du format de la date, il y a le field année, le field jour etc...?

    A la fin de la page DateFormat ils disent :

    You can also use forms of the parse and format methods with ParsePosition and FieldPosition to allow you to

    * progressively parse through pieces of a string.
    * align any particular field, or find out where it is for selection on the screen.
    --> je ne comprends pas la partie en gras...

    Je me demande aussi, dans la continuité, quelle est la différence entre SimpleDateFormat et Calendar?

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la partie en gars: en gros en faisant le parsing pas a pas plutot que de se faire retourner une Date en bonne et due forme, ca te permet de savoir à quelle position de la string se trouvent les différents éléments. Tu pourrais ainsi par exemple soulignée l'année, écrire l'heure en rouge ou que sais-je. En pratique, t'en aura pas besoin pour début.

    La différence ente SimpleDateFormet et Calendar: je dirais plutot quel est le point commun entre les deux. L'un permet de faire de la conversion d'un objet Date <-> String , l'autre permet de stocker une date et une timezone et d'accéder à ses différents champs pour les modifier. Les seuls points commun je dirais: ils héritent de Object, ils possèdent des méthodes qui manipulent un "Date".

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut
    Merci c'est plus clair .

    Encore trois petites questions : quelle est la différence entre Calendar et GregorianCalendar?

    Et si jamais je veux stocker la date du moment m, il vaut mieux que je la stocke en faisant Date() ou en faisant Calendar.getTimeInstance() ou encore en faisant GregorianCalendar()?
    J'ai l'impression que les trois enregistrent bien la date du moment où ils sont instanciés sauf que les deux derniers intègrent un calendrier en plus, c'est ça?

    Enfin sauriez-vous où je pourrais trouver la liste des patterns de format spécifiques à la France? J'ai beau chercher sur Google je ne vois pas.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Date, c'est juste une information de temps depuis epoch sous forme d'un long. Calendar intègre la timezone, de par ce fait, est capable de manipuler tous les champs formant la date (calendar enveloppe un date en la fixant dans une timezone donc). en effet, obtenir le jour ou l'heure d'un "nombre de millisecondes depuis epoch" sans avoir de timezone n'as pas beaucoup de sens. GregorianCalendar est l'implémentation en calendrier grégorien de la classe abstraite Calendar. La pluspart du temps c'est celui que tu utilisera (sauf si tu veux jouer avec des dates de l'an mil ou un truc du genre, on change complètement de règle -> on change de calendar)

    Citation Envoyé par Lenorah Voir le message
    Enfin sauriez-vous où je pourrais trouver la liste des patterns de format spécifiques à la France? J'ai beau chercher sur Google je ne vois pas.
    Pas étonnat que tu trouve pas, on comprend pas ce que tu veux là Qu'est-ce que tu appelle les format spécifiques à la france??

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