2012-05-07 6 views
0

J'ai une date que je reçois d'un serveur formaté en EST comme celui-ciConversion d'une chaîne de date d'un fuseau horaire à un fuseau horaire différent

05/07/2012 16:55:55 passe comme mois/jour/année puis le temps

si le téléphone est pas dans EST comment puis-je le convertir en fuseau horaire dans le téléphone?

il ne serait pas problème si je suis arrivé le temps en millisecondes mais je ne

EDIT:

ok maintenant le temps est pas correcte lors du formatage

   String sTOC = oNewSTMsg.getAttribute("TOC").toString(); 
       String timezoneID = TimeZone.getDefault().getID(); 
       DateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); 
       format.setTimeZone(TimeZone.getTimeZone("EST")); 
       String newtimezoneID = TimeZone.getDefault().getID(); 
       Date timestamp = null; 
       try{ 
        timestamp = format.parse(sTOC); 
        format.setTimeZone(TimeZone.getDefault()); 
        timezoneID = format.format(timestamp); 
       }catch(ParseException e){ 

       } 

Je le convertir à "EST" puis formatez cette heure sur la valeur par défaut TimeZone mais l'heure est toujours décalée d'une heure, vous ne savez pas pourquoi?

+0

vous pouvez convertir la date la source/heure (dans l'Est) en UTC? Vous pouvez détecter les paramètres de fuseau horaire du téléphone et convertir la date-heure UTC source en date-heure locale en fonction du fuseau horaire du téléphone – rt2800

Répondre

1

Utilisez le code suivant pour obtenir un horodatage UNIX:

String serverResp = "05/07/2012 16:55:55"; 
DateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); 
Date date = format.parse(serverResp); 

Maintenant vous avez l'horodatage, que vous savez comment utiliser.

Voici une autre question qui couvre la conversion, au cas où vous êtes curieux: Android Convert Central Time to Local Time

0

Utilisez la classe DateFormat pour analyser la chaîne dans un Date. Voir l'introduction au document API ici ... http://docs.oracle.com/javase/1.5.0/docs/api/java/text/DateFormat.html

Vous pouvez ensuite créer un calendrier pour la date ...

Calendar cal = Calendar.getInstance().setTime(date); 

Et vous pouvez changer le fuseau horaire sur le calendrier à un fuseau horaire différent en utilisant setTimezone(). Ou tout simplement obtenir le temps en millisecondes, en utilisant getTimeInMillis()

En utilisant les Calendar, Date et DateFormat cours devraient vous mettre dans la bonne direction.

Voir la documentation Calendar ici ... http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

Questions connexes