2009-10-28 5 views
2

J'obtiens fuseau horaire que,Comment obtenir le format de l'heure du fuseau horaire actuel?

String defaultTimeZone = ""+TimeZone.getDefault(); 

Maintenant, je veux obtenir son temps pour lequel je ne suis pas en utilisant,

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); 

pour exemple, si currentTimeZone = « Calcutta » alors son temps est 0530 qui sera comme,

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss +0530"); 

Je suis en utilisant les API de RIM Java1.4 &, en Java 1.5 u peut écrire comme "aaaa-mM-jJ HH: mm: ss Z" pour obtenir "0530"

Alors, comment le faire dans Java 1.4?


I vérifiée à l'aide,

boolean isDayLightSavings = _timeZone.useDaylightTime(); 
if(isDayLightSavings) 
{    
     gmtOffset = _timeZone.getOffset(1, _calendar.get(Calendar.YEAR), _calendar.get(Calendar.MONTH), _calendar.get(Calendar.DATE), _calendar.get(Calendar.DAY_OF_WEEK), _calendar.get(Calendar.MILLISECOND)); 
} 

mais même résultat que son entrée 1 heure avant/arrière dans le fuseau horaire qui utilise l'heure d'été. (par exemple, pour les TimeZones utilisant DST, Blackberry n'utilise pas DST lorsque j'utilise getOffset (..))

Donc, dois-je activer DST dans le périphérique BB. Si oui alors comment le faire?

Répondre

0

Que diriez-vous de cette

Calendar cal = Calendar.getInstance(); 
return cal.getTimeZone(); 

calendrier grégorien est assez pratique pour toutes les choses de date/heure.

+0

Merci, mais "GreogorianCalendar" n'est pas disponible dans les docs API Blackberry JDE 4.5.0. – Shreyas

+0

Eh bien, vous pouvez appeler la variable Calendrier, l'idée générale est la même que ci-dessus. – Zoidberg

+0

Oui, en utilisant "Calendrier" je l'ai fonctionné. Seul le problème concerne TimeZones utilisant DST lorsque j'utilise getOffset(). Pls référer mon commentaire ci-dessus à ce sujet. – Shreyas

0

Pour être un peu plus précis, essayez ceci:

Calendrier cal = Calendar.getInstance();
TimeZone timeZone = cal.getTimeZone();
int rawOffset = timeZone.getRawOffset();

Le décalage brut est en millisecondes. Divisez par 3 600 000 pour obtenir le décalage en heures.

+0

Je me suis dit que je laisserais les JavaDocs faire le reste du travail. – Zoidberg

+0

Salut Merci Chris. Ça marche. Mais getRawOffset() ne considère pas DayLight Savings Time (DST) et getOffset() le fait. si j'utilise getOffset alors le résultat arrive 1 h avant/arrière pour TimeZones qui utilise DST. (signifie en bref pour TimeZones en utilisant DST, Blackberry périphérique n'utilise pas DST lorsque j'utilise getOffset (..)) Donc, je pense que l'économie de jour en handicapés dans mon Blackberry Device. tu sais comment l'activer? des réglages à faire?Comment résoudre ce problème pour DST? – Shreyas

+1

(par exemple pour "Adélaïde" son heure dans l'appareil Blackberry est GMT +09: 30 et si j'utilise getOffset() alors c'est à venir +10: 30) – Shreyas

Questions connexes