SimpleDateFormat & MacOS X, je deviens fou

SimpleDateFormat & MacOS X, je deviens fou - Java - Programmation

Marsh Posté le 11-06-2005 à 20:49:38    

Salut
Regardez bien la ligne qui suit
 

Code :
  1. System.out.println("The date = " + new SimpleDateFormat("ddMMMyyyy" ).format(new Date()));


 
Normalement ca devrait me sortir (enfin c'est ce que j'esperais et ce que j'avais vu sur un PC...) :
 

Code :
  1. The date = 11jun2005


 
A la place ca me sort :
 

Code :
  1. The date = 11juin2005


 
Je sais plus quoi faire !!!
J'utilise java1.4.2 et je suis sous Mac OSX 10.3. Quelqu'un a deja vu ca ?
Merci beaucoup de votre aide !!!
@++
 
[Edit]Precision : donc mon probleme c'est que mon mois sort sur 4 caracteres au lieu d'une abreviation sur trois caracteres. Mais pourquoi ?


Message édité par JaymzHetfield le 11-06-2005 à 20:50:45
Reply

Marsh Posté le 11-06-2005 à 20:49:38   

Reply

Marsh Posté le 11-06-2005 à 22:20:08    

ca depend pas de la Locale ?

Reply

Marsh Posté le 11-06-2005 à 22:22:45    

Citation :

Text: For formatting, if the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available


 
et a mon avis, juin, en francais, y a pas d'abbreviation. (rapport a juillet tout ca)

Reply

Marsh Posté le 11-06-2005 à 23:35:04    

oui, c'est ce que souk dit.
Si on lit la javadoc, on voit que c'est Locale-dependant. Si tu ne spécifies pas de Locale quand tu instancies ton DateFormat, il prend Locale.getDefault(), et ça, ça te renvoie la locale par défaut de ton systeme, donc c'est dépendant de l'install de java et de ton os.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 11-06-2005 à 23:38:36    

Enfin, pour etre plus précis par rapport au quote de souk, il faut ajouter ceci:

Citation :

Month:  If the number of pattern letters is 3 or more, the month is interpreted as text; otherwise, it is interpreted as a number.


Donc, effectivement avec 3 M tu devrais avoir une forme courte du mois en texte... mais sa longueur n'est pas relative au nombre de M dans ton pattern, et il n'est pas garanti qu'elle est définie.
A partir de 4M par contre, tu aurais à tous les coups la forme longue du nom du mois. Avec 1 ou 2M tu l'aurais sous forme de chiffre.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 11-06-2005 à 23:42:05    

souk a écrit :

Citation :

Text: For formatting, if the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available


 
et a mon avis, juin, en francais, y a pas d'abbreviation. (rapport a juillet tout ca)


si c'est jun

Reply

Marsh Posté le 12-06-2005 à 12:38:23    

Eh bien merci. Je suis un boulet !
J'avais bien consulte la javadoc, mais en m'acharnant sur le tableau d'exemples, sans comprendre que ces exemples sont donnes pour l'anglais et que ca s'adapte au langage.. Comme specifie effectivement a la premiere ligne :

SimpleDateFormat is a concrete class for formatting and parsing dates in a locale-sensitive manner


Pour avoir le comportement que j'attends il me suffit donc de faire comme ca :

Code :
  1. System.out.println("The date = " + new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH).format(new Date()));


Merci
@++
 
[Edit] : on peut pas utiliser les balises pour faire du gras a l'interieur de fixed et de cpp ???


Message édité par JaymzHetfield le 12-06-2005 à 12:41:12
Reply

Marsh Posté le 12-06-2005 à 14:25:56    

JaymzHetfield a écrit :


[Edit] : on peut pas utiliser les balises pour faire du gras a l'interieur de fixed et de cpp ???


non [:spamafote]
mais si tu veux, tu peux faire du lobbying


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed