[JAVA] Problème Calendar - GregorianCalendar

Résolu
Blunderer Messages postés 273 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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