title: Timezone display value with GMT offset from a given timezone?
body: <p>I would like to construct a timezone list to show it to users to select. The display name has to be like:</p>
  
  <blockquote>
    <p><code>( GMT 5:30 ) India Standard Time(Asia/Calcutta)</code></p>
  </blockquote>
  
  <p>I am taking all timezones with <code>TimeZone.getAvailableIDs()</code> and constructing the list. The code I wrote is:</p>
  
  <pre><code>String[] timeZones = TimeZone.getAvailableIDs();
  List&lt;String&gt; tzList = new ArrayList&lt;String&gt;();
  for (String timeZone : timeZones)
  {
    TimeZone tz = TimeZone.getTimeZone(timeZone);
    StringBuilder timeZoneStr = new StringBuilder();
    timeZoneStr.append("( GMT ").append(tz.getRawOffset() / (60 * 60 * 1000)).append(" ) ").append(tz.getDisplayName()).append("(").append(timeZone).append(")");
    tzList.add(timeZoneStr.toString());
    System.out.println(timeZoneStr.toString());
  }
  </code></pre>
  
  <p>A snippet of the output would be like:</p>
  
  <pre class="lang-none prettyprint-override"><code>( GMT 5 ) Maldives Time(Indian/Maldives)
  ( GMT 5 ) Pakistan Time(PLT)
  ( GMT 5 ) India Standard Time(Asia/Calcutta)
  ( GMT 5 ) India Standard Time(Asia/Kolkata)
  ( GMT 5 ) India Standard Time(IST)
  </code></pre>
  
  <p>But the output I need to get is:</p>
  
  <pre class="lang-none prettyprint-override"><code>( GMT 5:0 ) Maldives Time(Indian/Maldives)
  ( GMT 5:0 ) Pakistan Time(PLT)
  ( GMT 5:30 ) India Standard Time(Asia/Calcutta)
  ( GMT 5:30 ) India Standard Time(Asia/Kolkata)
  ( GMT 5:30 ) India Standard Time(IST)
  </code></pre>
  
  <p>What should I do to get 5:30?</p>