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

Langage Java Discussion :

[java.util.Date] calendrier Hijri


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut [java.util.Date] calendrier Hijri
    Bonjour.

    J'ai un souci avec une conversion de date String <--> Date
    En entrée j'ai la date suivante 29/02/1430 sous forme de String (14300229) que je convertis en Date via SimpleDateFormat("yyyMMdd").
    Puis je la reconvertit dans l'autre sens (via la même classe).
    J'obtiens alors 01/03/1430 (14300301) !!

    Je sais d'où vient le problème (dans le calendrier Hijri, la date existe mais pas dans le calendrier Gregorien) mais je ne sais pas comment le résoudre !!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Par défaut
    Il faut savoir le 01/01/00 hijri correspond a quelle date en grégorien ca dire en date normal (comme aujourd'hui correspond a 2009-04-09), ce n'est pas facile puisque le hijri utilise l'année lunaire, comportant que 360 jours maxi je pense. je ne peux pas te dire plus que ca, peut être qu'il ya deja des chose qui ont été deja fait surement cherche bien.
    salut

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    L'objet DateFormat utilise par défaut le calendrier grégorien (ou plus précisément le calendrier de la "locale" par défaut, qui se trouve être le calendrier grégorien dans ton cas... : "Initially, the default calendar for the specified or default locale is used."), d'où la conversion du "29 février" en "1er mars" puisque l'année grégorienne 1430 n'est pas bissextile...
    Si tu veux utiliser un autre calendrier, il est apparemment possible de modifier le calendrier utilisé par ton DateFormat grâce à la fonction setCalendar (ou peut-être directement dans le constructeur). Après, je ne sais pas s'il existe quelque part une classe toute prête dérivée de java.util.Calendar qui implémente le calendrier Hijri...


    J'ai tapé "java calendrier hijri" dans Google, il semblerait que l'API Joda-Time propose des classes permettant de manipuler ce type de dates... je te laisse voir ça

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    J'ai trouvé une librairie IBM qui répond à mon besoin (+ ou -) : icu4j
    Le seul soucis est que le Calendar d'IBM n'hérite pas du Calendar de Sun...
    Mais cela répond tout de même à mon (petit) besoin de formatage...

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

Discussions similaires

  1. Cast de java.util.DATE à java.sql.DATE
    Par mnemonic78 dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h21
  2. Java 5.0 et java.util.Date
    Par Royd938 dans le forum Langage
    Réponses: 4
    Dernier message: 10/07/2006, 12h19
  3. Conflit entre java.util.Date et class java.sql.Date
    Par vonitiana dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2006, 11h43
  4. de java.sql.Date à java.utile.Date
    Par Sniper37 dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 23/05/2006, 16h10
  5. Réponses: 4
    Dernier message: 06/02/2004, 16h23

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