Beste Weg, um zu extrahieren TimeZone-Objekt aus einem String?

Habe ich ein Datenbank-Feld enthält eine raw-Feld Datum (gespeichert als character data"), wie

Freitag, September 26, 2008 8:30 PM Eastern Daylight Time

Ich analysieren kann dies als ein Datum einfach mit " = SimpleDateFormat

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

Was ich tun möchte ist, extrahieren Sie eine TimeZone-Objekt aus diesem string. Die Standard-Zeitzone in der JVM, dass diese Anwendung läuft, GMT, also kann ich nicht verwenden .getTimezoneOffset() von der Date analysiert vor (weil es wird wieder die default-TimeZone).

Neben der tokenisierung die raw-string-und die Suche nach der start-position der Timezone-string (da ich weiß, das format wird immer EEEE, MMMM dd, yyyy hh:mm aa zzzz) gibt es eine Möglichkeit mit Hilfe der DateFormat - /" = SimpleDateFormat/Datum/Kalender-API extrahieren-ein TimeZone-Objekt - die haben die gleiche Zeitzone als String habe ich analysiert, auseinander mit DateFormat.parse()?

Eine Sache, die nervt mich über Date vs Calendar in der Java-API ist, dass Calendar ersetzen soll Date an allen Orten... aber dann entschieden Sie sich, oh, hey, lasst uns noch nutzen Date's in der DateFormat Klassen.

  • haben u got Lösung für dieses Problem?
  • In Bezug auf den letzten Absatz, der Date & Calendar Klassen sind eine blutige Masse: schlecht konzipiert, verwirrend und lästig. Um Sie zu vermeiden. Verwenden Sie die java.Zeit Klassen statt.
InformationsquelleAutor matt b | 2008-09-17
Schreibe einen Kommentar