IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Parser une date suivi d'un fuseaux horaire (date+02:00) et conversion en Date.


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 122
    Points : 81
    Points
    81
    Par défaut Parser une date suivi d'un fuseaux horaire (date+02:00) et conversion en Date.
    Bonjour,

    Lors ce que j'envoi une requête à un serveur SOAP X.

    Il me renvoi une enveloppe contenant une date au format
    2013-06-30+02:00

    Je n'ai aucune difficultée pour traiter la date,
    par contre, pour le fuseau horaire c'est une autre paire de manche.

    Est-ce que qqn pourrai me fournir des pistes de réflexion ou une solution.

    Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		SimpleDateFormat fa = new SimpleDateFormat("MM-dd-yyyy");
    		String date  = "2013-06-30+02:00";
     
    		java.util.Date f = null;
    		try {
    			f = sdf.parse(date);
    			System.out.println(fa.format(f));
    		} catch (ParseException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
    		String g = sdf.format(f);
     
    		System.out.println(g);
    Résultats:

    06-30-2013
    2013-06-30

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut

    ce serait simple à faire si ton fuseau était indiqué selon la RFC-822, c'est à dire sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String date  = "2013-06-30+0200"

    il te suffirait d'utiliser le format suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddZ");
    avec ta syntaxe de date, il faudrait soit prétaiter ta syntaxe pour supprimer le : dans le fuseau horaire

    soit parser en 2 fois,
    - après avoir parser la partie date,
    - parser la partie fuseau
    - et modifier la date avec le fuseau parsé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    		MessageFormat mf = new MessageFormat("{0,date,yyyy-MM-dd}{1}");
    		String date  = "2013-06-30+02:00";
     
    		java.util.Date f = null;
    		try {
    			Object[] values = mf.parse(date);
    			f = (Date) values[0];
    			String timezone=(String) values[1];
    			timezone="GMT"+timezone;
    			TimeZone tz = TimeZone.getTimeZone(timezone);
    			fa.setTimeZone(tz);
    			System.out.println(fa.format(f));
    		} catch (ParseException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2009, 02h18
  2. Date et fuseaux horaires sous linux C++
    Par lsdfr dans le forum Linux
    Réponses: 7
    Dernier message: 16/07/2008, 18h26
  3. Parser une date
    Par narmataru dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/04/2008, 17h31
  4. Probleme pour parser une String en Date
    Par DrTank dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2007, 19h19
  5. Parser une date avec un format
    Par titoine1978 dans le forum C++
    Réponses: 15
    Dernier message: 03/04/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo