title: Best way to extract TimeZone object from a String?
body: <p>I have a database field that contains a raw date field (stored as character data), such as </p>
  
  <blockquote>
    <p>Friday, September 26, 2008 8:30 PM Eastern Daylight Time</p>
  </blockquote>
  
  <p>I can parse this as a Date easily, with SimpleDateFormat</p>
  
  <pre><code>DateFormat dbFormatter = new SimpleDateFormat("EEEE, MMMM dd, yyyy hh:mm aa zzzz");
  Date scheduledDate = dbFormatter.parse(rawDate);
  </code></pre>
  
  <p>What I'd like to do is extract a TimeZone object from this string. The default TimeZone in the JVM that this application runs in is GMT, so I can't use <code>.getTimezoneOffset()</code> from the <code>Date</code> parsed above (because it will return the default TimeZone).</p>
  
  <p>Besides tokenizing the raw string and finding the start position of the Timezone string (since I know the format will always be <code>EEEE, MMMM dd, yyyy hh:mm aa zzzz</code>) is there a way using the DateFormat/SimpleDateFormat/Date/Calendar API to extract a TimeZone object - which will have the same TimeZone as the String I've parsed apart with <code>DateFormat.parse()</code>?</p>
  
  <p>One thing that bugs me about <code>Date</code> vs <code>Calendar</code> in the Java API is that <code>Calendar</code> is supposed to replace <code>Date</code> in all places... but then they decided, oh hey let's still use <code>Date</code>'s in the <code>DateFormat</code> classes.</p>