2010-07-27 5 views
1

Je dois afficher le fuseau horaire dans le format suivant dans mon interface utilisateur.Affichage du fuseau horaire en java

(GMT -05: 00) heure de l'Est (US & Canada).

J'ai essayé d'obtenir l'heure et le fuseau horaire du calendrier. Mais quand j'ai essayé d'obtenir le nom d'affichage du fuseau horaire, il affiche simplement "heure de l'Est". Je ne reçois pas le format mentionné ci-dessus. Quelqu'un peut-il aider.

Voici mon extrait de code et j'utilise JDK 1.4.2.

Calendar c = Calendar.getInstance(); 
TimeZone tz = c.getTimeZone(); 
String s = tz.getDisplayName(); 
+0

Pouvez-vous s'il vous plaît mettre en évidence la chaîne de format complet que vous voulez? Citez-le ou utilisez des ticks simples pour le rendre plus facile à voir. –

Répondre

4

Voici l'appel de la méthode getDisplayName(). Essayez de spécifier TimeZone.LONG pour le style. La méthode n'a pas changé depuis Java 1,2

getDisplayName

public final Chaîne getDisplayName (lumière du jour booléen, style int, locale Locale)

Renvoie un nom de ce fuseau horaire approprié pour présentation à l'utilisateur dans les paramètres régionaux par défaut. Si le nom d'affichage n'est pas disponible pour les paramètres régionaux, cette méthode renvoie une chaîne dans le format d'ID personnalisé normalisé.

Paramètres:

daylight - if true, return the daylight savings name. 
    style - either LONG or SHORT 
    locale - the locale in which to supply the display name. 

Retours:

the human-readable name of this time zone in the default locale. 

Si cela ne suffit pas, vous pouvez toujours essayer Joda Time.

+0

Je recommanderais fortement Joda Time de toute façon. –

1

S'il vous manque le décalage, jetez un oeil à la méthode getOffset() sur TimeZone. Cela devrait vous donner suffisamment d'informations pour calculer le décalage de GMT.

+0

Je pense qu'il disait qu'il manquait la partie "(États-Unis et Canada)". (chaîne simple + fonctionnerait) – Nix

Questions connexes