Précédent   Forum des professionnels en informatique > Java > Général Java > Langage
Langage Forum d'entraide sur le langage Java et autres langages pour la JVM : syntaxe, POO, conventions, API standard. Avant de poster -> FAQ Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 10h48   #1
Membre éclairé
 
Inscription : janvier 2006
Messages : 354
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France

Informations forums :
Inscription : janvier 2006
Messages : 354
Points : 348
Points : 348
Par défaut Problème heure de Calendar

Bonjour,

j'ai un petit probleme avec Calendar, je n'arrive pas à forcer l'heure à 0. Il me renvoit systematiquement 12h.

Voici le code :

Code :
1
2
3
4
5
Calendar dateDepot = new GregorianCalendar();
		dateDepot.setTime(dateEaiEvent);
		dateDepot.set(Calendar.HOUR, 0);
		dateDepot.set(Calendar.MINUTE, 0);
		dateDepot.set(Calendar.SECOND, 0);
J'ai essayé de définit le timezone, AP_AM mais rien n'y fait et je ne comprends pas pourquoi!
lilli1407 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 10h57   #2
Modérateur
 
Avatar de dinobogan
 
Homme Dinobogan Shelashyn
ingénieur étude et développement
Inscription : juin 2007
Messages : 3 276
Détails du profil
Informations personnelles :
Nom : Homme Dinobogan Shelashyn
Âge : 31
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 3 276
Points : 4 886
Points : 4 886
Donne ton code de lecture, le problème vient peut-être de là.
__________________
Que la force de la puissance soit avec le courage de ta sagesse.
dinobogan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h54   #3
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 101
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 101
Points : 7 027
Points : 7 027
Moi ça me renvoie bien minuit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Date dateEaiEvent = new Date();
 
Calendar dateDepot = new GregorianCalendar();
dateDepot.setTime(dateEaiEvent);
dateDepot.set(Calendar.HOUR, 0);
dateDepot.set(Calendar.MINUTE, 0);
dateDepot.set(Calendar.SECOND, 0);
dateDepot.set(Calendar.AM_PM, Calendar.AM);
 
Date depot = dateDepot.getTime();
 
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String dateString = df.format(depot);
System.out.println(dateString);
Mais il y a plus simple : utiliser HOUR_OF_DAY au lieu de HOUR et AM_PM :

Code :
1
2
3
4
5
Calendar dateDepot = new GregorianCalendar();
dateDepot.setTime(dateEaiEvent);
dateDepot.set(Calendar.HOUR_OF_DAY, 0);
dateDepot.set(Calendar.MINUTE, 0);
dateDepot.set(Calendar.SECOND, 0);
Ah, au fait, si tu veux t'aligner sur minuit pile, il ne faut pas oublier de mettre les millisecondes à zéro.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 11h59   #4
Membre éclairé
 
Inscription : janvier 2006
Messages : 354
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France

Informations forums :
Inscription : janvier 2006
Messages : 354
Points : 348
Points : 348
apres je fais ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
logger.info("DD " + dateDepot.getTime());
		try {
			ArrayList listJF = this.getJoursFeries();		
			Iterator itListJF = listJF.iterator();
			Calendar JF = new GregorianCalendar();			
			while (itListJF.hasNext()){
				Date jourFerie = (Date) itListJF.next();
				JF.setTimeInMillis(jourFerie.getTime());
				JF.set(Calendar.HOUR, 12);
				JF.set(Calendar.MINUTE, 0);
				JF.set(Calendar.SECOND, 0);
				logger.info("Date depot " + JF.getTime());
				if (JF.compareTo(dateDepot)==0){
					isCpoJo = true;
					break;
				}
			}
		} catch (SQLException e) {			
		} catch (NamingException e){			
		}
lilli1407 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 12h12   #5
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 101
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 101
Points : 7 027
Points : 7 027
Citation:
Envoyé par lilli1407 Voir le message
apres je fais ça :
Mais... Là tu as cette ligne-là :

Code :
JF.set(Calendar.HOUR, 12);
Mettre à 12h, c'est exactement ce que tu lui demandes...
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 13h23   #6
Membre éclairé
 
Inscription : janvier 2006
Messages : 354
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France

Informations forums :
Inscription : janvier 2006
Messages : 354
Points : 348
Points : 348
non ce n'est pas celui là qui me pose probleme mais le premier. Celui-là je l'ai modifier pour que la condition soit remplie mais je ne trouve pas ça top
lilli1407 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 13h33   #7
Futur Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 22
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 22
Points : 19
Points : 19
Citation:
Envoyé par thelvin Voir le message
dateDepot.set(Calendar.AM_PM, Calendar.AM);
Citation:
Envoyé par lilli1407 Voir le message
J'ai essayé de définit le timezone, AP_AM mais rien n'y fait et je ne comprends pas pourquoi!
tu est sûr du timezone AP_AM ?...
Car effectivement quand on rajoute
Code :
dateDepot.set(Calendar.AM_PM, Calendar.AM);
L'heure passe bien à 00:00
zeroc00l est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 14h38   #8
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 101
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 101
Points : 7 027
Points : 7 027
Citation:
Envoyé par lilli1407 Voir le message
non ce n'est pas celui là qui me pose probleme mais le premier. Celui-là je l'ai modifier pour que la condition soit remplie mais je ne trouve pas ça top
Dans ce cas pourquoi tu nous parles de ce code-là ? Il n'a rien à voir avec rien...
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 15h34   #9
Membre éclairé
 
Inscription : janvier 2006
Messages : 354
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France

Informations forums :
Inscription : janvier 2006
Messages : 354
Points : 348
Points : 348
j'ai mis la fin de mon code parce que dinobogan m'a demande juste avant mon code de lecture

Oui c'est bien AM_PM que j'ai testé, désolée pour la faute de frappe
lilli1407 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 15h39   #10
Membre éclairé
 
Inscription : janvier 2006
Messages : 354
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France

Informations forums :
Inscription : janvier 2006
Messages : 354
Points : 348
Points : 348
c'est bon en effet avec :
Code :
dateDepot.set(Calendar.AM_PM, Calendar.AM);
ca marche.

Comme un boulet j'avais mis Calendar.PM

Merci à tous
lilli1407 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 15h46   #11
Modérateur
 
Avatar de OButterlin
 
Homme
Inscription : novembre 2006
Messages : 5 063
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 5 063
Points : 5 654
Points : 5 654
tu avais plus simple avec HOUR_OF_DAY
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h01.


 
 
 
 
Partenaires

Hébergement Web