title: Google App Engine - GAE will not set Default TimeZone
body: <p>I have tried the following so I can get Date based on my timezone which is <code>"Africa/Johannesburg"</code>  or <code>GMT+2:00</code> but Google servers always return time using its own timezone which is 2 hours behind mine.</p>
  
  <p>I have done the FF:</p>
  
  <p>in <code>appengine-web.xml</code> I have set  </p>
  
  <pre><code>&lt;property name="user.timezone" value="Africa/Johannesburg"/&gt;
  </code></pre>
  
  <p>I have also tried  <code>TimeZone.setDefault(TimeZone.getTimeZone("GMT+2:00"));</code> before creating Date object</p>
  
  <p>in the init method of my servlet, I have also tried     </p>
  
  <pre><code>@Override
      public void init() throws ServletException {
           TimeZone.setDefault(TimeZone.getTimeZone("GMT+2:00"));
      }
  </code></pre>
  
  <p>But this thing won't just work. Because JDK date is not thread safe, I am using JodaTime, which works well, In fact when I do <code>new DateTime(DateTimeZone.forID("Africa/Johannesburg"))</code> I get correct time but for legacy issues, I have to store date in JDK date hence have to convert Joda to JDK Date by invoking .Date(), then the time is completely screwed up in wrong timezone.</p>
  
  <p>Does anyone by chance know how to set this without having to subtract the hours difference.</p>