[JAVA] Problème Calendar - GregorianCalendar

Résolu/Fermé
Blunderer Messages postés 273 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 6 décembre 2012 - 17 août 2012 à 14:30
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 17 août 2012 à 15:38
Bonjour,

J'ai deux dates à rentrer :
- setBeginDate(date1);
- setEndDate(date2);

date1 et date2 doivent être de la forme 2012-08-17T14:28:20+02:00.

Mais je ne comprends pas très bien comment faire en sorte d'avoir le +02:00 à la fin... Il faut indiquer le lieu de localisation, je pense mais ne sais pas comment faire...

Merci :)



A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 17/08/2012 à 15:40
Dans le Formatter, ton +02:00 correspond au 'z' (même s'il est affiché +0200)

System.out.printf("%1$tFT%1$tT%1$tz\n",new GregorianCalendar().getTime());
Mais ce n'est pas la localisation qu'il faut changer (qui n'a d'influence que sur la langue du pays, sa monnaie...) mais le fuseau horaire (certains pays ont plusieurs fuseaux horaires).

Attention : les fuseaux horaires sont enregistrés en millième de secondes !

Calendar calendar = new GregorianCalendar();
System.out.printf("%+d\n",calendar.get(Calendar.ZONE_OFFSET)/3600000);
   
calendar.setTimeZone(TimeZone.getTimeZone("GMT-8"));
System.out.printf("%+d\n",calendar.get(Calendar.ZONE_OFFSET)/3600000);

calendar.set(Calendar.ZONE_OFFSET,4*3600000);
System.out.printf("%+d\n",calendar.get(Calendar.ZONE_OFFSET)/3600000)

Et directement avec le constructeur :

calendar = new GregorianCalendar(TimeZone.getTimeZone("GMT+6"));
System.out.printf("%+d\n",calendar.get(Calendar.ZONE_OFFSET)/3600000);
La confiance n'exclut pas le contrôle
0