Le meilleur moyen d'extraire le Fuseau horaire de l'objet à partir d'une Chaîne?

J'ai un champ de base de données qui contient les raw d'un champ de date (stockées en tant que données de caractères), comme

Vendredi, septembre 26, 2008 8:30 PM Heure Avancée de l'est

Je peut analyser ce qu'une Date facilement, avec SimpleDateFormat

DateFormat dbFormatter = new SimpleDateFormat("EEEE, MMMM dd, yyyy hh:mm aa zzzz");
Date scheduledDate = dbFormatter.parse(rawDate);

Ce que je voudrais faire est d'extraire un Fuseau horaire de l'objet de cette chaîne. Le Fuseau horaire par défaut dans la JVM que cette application s'exécute en est GMT, donc je ne peux pas utiliser .getTimezoneOffset() de la Date analysée ci-dessus (parce qu'il sera de retour le Fuseau horaire par défaut).

En plus de la segmentation de la chaîne brute et de trouver la position de départ de la chaîne Timezone (car je sais que le format sera toujours EEEE, MMMM dd, yyyy hh:mm aa zzzz) est-il un moyen à l'aide de la DateFormat/SimpleDateFormat/Date/Calendrier de l'API pour extraire un Fuseau horaire de l'objet qui a le même Fuseau horaire que la Chaîne de caractères que j'ai analysé à part avec DateFormat.parse()?

Une chose qui me dérange à propos de Date vs Calendar dans l'API Java est que Calendar est censé remplacer Date dans tous les endroits... mais ensuite, ils ont décidé, oh, hey nous allons encore utiliser Date's dans la DateFormat classes.

a u got solution pour ce problème?
Concernant le dernier paragraphe, le Date & Calendar classes sont un désordre sanglant: mal conçue, de la confusion, et gênants. Les éviter. Utiliser le java.de temps les classes à la place.

OriginalL'auteur matt b | 2008-09-17