Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1366 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Problème de conversion de temps en fonction de timezone

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de conversion de temps en fonction de timezone

n°1506239
PETOZAK
Posté le 23-01-2007 à 11:06:47  profilanswer
 

Bonjour,
J'ai une petite methode qui me permet de calculer les temps d'execution:

Code :
  1. public static String convertFromMillisToTime(long timeInMSec, String pattern) {
  2.  Calendar c = Calendar.getInstance();
  3.  c.setTimeInMillis(timeInMSec);
  4.  c.add(Calendar.HOUR, -1);
  5.  return new SimpleDateFormat(pattern).format(c.getTime());
  6. } public static void main(java.lang.String[] args) {
  7.  System.out.println(convertFromMillisToTime(100000, "HH:MM:ss" ));
  8. }


 
Comme vous pouvez le voir je suis obligé à Paris de retrancher 1 heure car j'obtient 01:01:40 au lieu de 00:01:40...A New York elle me renvoit 18:01:40...à Hong Kong ...7:01:40
 
Bref , mon appli doit tourner dans 3 Timezone different et j'obtiens un mauvais temps :S
Comment faire?


Message édité par PETOZAK le 23-01-2007 à 11:09:39
mood
Publicité
Posté le 23-01-2007 à 11:06:47  profilanswer
 

n°1506258
phnatomass
Je m'empare de ton esprit !!
Posté le 23-01-2007 à 11:39:35  profilanswer
 

Et la méthode setTimezone de Calendar ?

n°1506265
PETOZAK
Posté le 23-01-2007 à 11:48:48  profilanswer
 

pas besoin...vu que getInstance prend le default local + Timezone

n°1506326
nerisson
Pic-pic
Posté le 23-01-2007 à 14:00:20  profilanswer
 

Et en passant par la classes Date au lieu de Calendar ?


---------------
Light is right
n°1506361
phnatomass
Je m'empare de ton esprit !!
Posté le 23-01-2007 à 14:54:33  profilanswer
 

Petozak , je ne comprends pas ton programme.
tu m'as l'air de tenter de transformer une durée en une date ce qui n'est pas juste.

n°1518916
PETOZAK
Posté le 23-02-2007 à 14:36:32  profilanswer
 

En effet grosse erreur!
 
voici la reponse:
 
 
Salut,
 
 
Une [B]durée [/B]n'est pas une [B]date [/B]! Cela n'a même rien à voir...
 
Lorsque tu fais :

Code :
  1. Calendar c = Calendar.getInstance();
  2. c.setTimeInMillis(100000);


Tu crée une date correspondant au 1er janvier 1970 00:01:40 à l'heure GMT.
Mais cette date correspond à autre chose selon le fuseau horaire d'où ton problème...
 
A la rigueur tu pourrais utiliser le TimeZone GMT pour récupérer l'heure :

Code :
  1. public static String convertFromMillisToTime(long timeInMSec, String pattern) {
  2.  Calendar c = Calendar.getInstance();
  3.  c.setTimeInMillis(timeInMSec);
  4.  DateFormat df = new SimpleDateFormat(pattern);
  5.  df.setTimeZone(TimeZone.getTimeZone("GMT" ));
  6.  return df.format(c.getTime());
  7. }


Seulement ce n'est pas une solution très propre, déjà car elle t'empêche de dépasser les 24h, et ensuite car les Calendars gèrent également des règles qui font que certaines journées "durent plus longtemps" d'une seconde...
Tout cela n'a rien à voir avec une durée...
 
 
Il serait bien plus prudent de calculer cela toi même :

Code :
  1. public static String convertFromMillisToTime(long timeInMSec, String pattern) {
  2.  long millisecondes = timeInMSec;
  3.  long secondes = millisecondes/1000L;
  4.  millisecondes -= secondes*1000L;
  5.  long minutes = secondes/60L;
  6.  secondes -= minutes*60L;
  7.  long heures = minutes/60L;
  8.  minutes -= heures*60L;
  9.  return String.format("%02d:%02d:%02d", heures, minutes, secondes);
  10. }


 
Ou encore mieux : tu peux utiliser la méthode DurationFormatUtils.formatDuration() des Jakarta Commons Lang...
 
 
a++


Message édité par PETOZAK le 23-02-2007 à 14:36:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Problème de conversion de temps en fonction de timezone

 

Sujets relatifs
[Résolu] [MySQL] Problème nombre commençant par zéroProbleme de conception : Apache XML RPC + Spring
Problème développementFonction Mail (erreur...)
[C] Liste chaibee Double ProblemePetit problème de conception (UML)
callback vers un fonction membre, sans parametre "user"[HTML/CSS] Problème affichage d'images
Génerer un xml (rss) a partir d'une base de données mySQL 
Plus de sujets relatifs à : Problème de conversion de temps en fonction de timezone


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR