title: How do I get British Summertime offset (BST) in Java
body: <p>In the UK, I'd like to get the current offset from UTC/GMT. Currently the offset is 1 hour, but there seems to be no way of finding this.</p>
  
  <p>Code</p>
  
  <pre><code>    TimeZone timeZone = TimeZone.getDefault();
      logger.debug("Timezone ID is '" + timeZone.getID() + "'");
      if (timeZone.getID().equals("GMT")) {
          timeZone = TimeZone.getTimeZone("Europe/London");
          logger.debug("New timezone is '" + timeZone.getID() + "'");
      }
      Long eventDateMillis = Long.parseLong(eventDateValue.getKeyValue());
      int timezoneOffset = timeZone.getOffset(eventDateMillis);
      logger.debug("Offset for " + eventDateValue + "(" + eventDateMillis + ") using timezone " + timeZone.getDisplayName() + " is " + timezoneOffset);
  </code></pre>
  
  <p>returns debug output</p>
  
  <pre><code>Wed 2012/09/19 16:38:19.503|Debug|DataManagement|Timezone ID is 'GMT'
  Wed 2012/09/19 16:38:19.503|Debug|DataManagement|New timezone is 'GMT'
  Wed 2012/09/19 16:38:19.557|Debug|DataManagement|Offset for 18 Sep 2012 09:00(1347958800000) using timezone Greenwich Mean Time is 0
  </code></pre>
  
  <p>In other words, timezone 'GMT' is returning an offset of zero and I can't find how to set it to something that does return the correct offset.</p>
  
  <p>If someone can provide a working code sample for JodaTime, that would do but I'd really like to avoid having to install a separate library just for what should be a one-liner.</p>
  
  <p>The Java version is 7.</p>