The code below is how I do this. It works for summer and winter times
automajically.

  public static final Locale G_LOCALE_UK = Locale.UK;
  public static final String G_S_TIME_ZONE_ID = "Europe/London";

  /**
   * Converts a date-time in Universal Time Co-ordinated (UTC) time
   * into a formatted string of that date-time translated to UK local
time
   * (GMT or BST depending on the time of year).
   * @param nDateStyle
   *   The date formatting style to be applied.
   * @param nTimeStyle
   *   The time formatting style to be applied.
   * @param dtDateTime
   *   A date-time (in UTC time).
   *   If this is <code>null</code> then an empty string is returned.
   * @return
   *   The date-time translated to UK local time formatted as a
string.
   */
  public static String dateTimeUTCToStringLocalTime(int nDateStyle,
   int nTimeStyle, Date dtDateTime)
  {
    String sDate = "";

    if (dtDateTime != null)
    {
      GregorianCalendar gcUK = new GregorianCalendar(G_LOCALE_UK);
      TimeZone tzUK = TimeZone.getTimeZone(G_S_TIME_ZONE_ID);
      gcUK.setTimeZone(tzUK);
      gcUK.setTime(dtDateTime);

      DateFormat dfUK =
SimpleDateFormat.getDateTimeInstance(nDateStyle,
       nTimeStyle, G_LOCALE_UK);
      dfUK.setCalendar(gcUK);
      sDate = dfUK.format(dtDateTime);
    }

    return sDate;
  }

  // Example usage of the method
  String sDT = dateTimeUTCToStringLocalTime(SimpleDateFormat.MEDIUM,
   SimpleDateFormat.MEDIUM, new Date());


Just alter the two constants to reflect Germany instead of their
current values which reflect the UK.

Enjoy?


On Jan 11, 3:24 pm, vega <_v...@vr-web.de> wrote:
> hi everyone.
>
> since the days are getting longer, i noticed that in 2 months ill have an
> error with my getTime() Method, which gives me the current time in a "human
> friendly" way.
>
> /**
> **dd.mm.yyyy hh:mm:ss
> **/
> public static String getTimeAsStringTest(){
>         Calendar cal = Calendar.getInstance();
>         cal.setTimeZone(TimeZone.getTimeZone("Germany/Berlin"));
>
>         int mod = 1; //Wintertime +1, Summertime +2
>
>         cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
> cal.get(Calendar.DATE), cal.get(Calendar.HOUR_OF_DAY)+mod,
> cal.get(Calendar.MINUTE));
>         DateFormat df = DateFormat.getDateTimeInstance( MEDIUM, MEDIUM,
> Locale.GERMANY );
>         return df.format(cal.getTime());
>     }
>
> i dont want to change the mod every 6 months (or how long the daylight
> saving time might be, i dont care^^).
> i would prefer it very much if it would give me the correct time without
> adding 1 or 2 hours to the time the calendar gives me...
>
> how do i archive this, without using something ugly like a list or some 42
> page long if else if statements which knows when to use +1 and when to use
> +2?...

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to