Datum und Uhrzeit in andere Zeitzone umrechnen

AlexHind

Mitglied
Ich versuche verzweifelt ein Datum und eine Uhrzeit die ich in UTC habe in die 'deutsche' Zeit umzurechnen, also
26.09.2016 15:11 in UTC
ergibt
26.09.2016 17:11 für München.

Ich habe hier schon viel gelesen und probiert, aber es nicht geschafft die Zeit umzurechnen. Vielleicht kann mir ja jemand einen Tipp geben.
Danke 🙂
 
Moin,
Ich habe hier schon viel gelesen und probiert
warum beschreibst Du nicht, was Du versucht hast??
Möchstest Du ggf. alle Tipps nochmal zu bekommen?

Vielleicht war ja auch Dein Ansatz nur nicht ganz richtig!
Poste eine mal Deinen Ansatz (Code-Tags nicht vergessen) und dann schauen wir weiter ...

Fertigen Code wird es hier nicht geben 😉
Gruß Klaus
 
Hallo Klaus,
vielen Dank für deine Antwort. Ich habe folgendes versucht:

Java:
DateFormat df = DateFormat.getDateTimeInstance();
TimeZone tz = TimeZone.getTimeZone("Europe/Berlin");
df.setTimeZone(tz);
Date d = df.parse("31.08.2015 14:06:56 UTC");
System.out.println(d);
System.out.println(df.format(d));

Hier habe ich versucht die Differenz in Stunden zu berechnen:
Java:
TimeZone tz1 = TimeZone.getTimeZone("GMT");
TimeZone tz2 = TimeZone.getTimeZone("Europe/Berlin");
long timeDifference = tz1.getRawOffset() - tz2.getRawOffset() + tz1.getDSTSavings() - tz2.getDSTSavings();
System.out.println("differenz " + timeDifference);

und noch einiges mehr .....

Mein Gedankengang war, dass ich eine Zeit in UTC vorgebe und dann mit einer der Datumsfunktionen diese dann in die MEZ bzw. MESZ umrechnen lasse. Ein weiterer Ansatz war, dass ich die Zeitdifferenz zwischen den Zeitzonen ausrechne und sie dann auf die UTC-Zeit addiere, aber auch hier bin ich gescheitert.

Das mit dem fertigen Code ist mir auch klar 😉
LG Alexandra
 
Zuletzt bearbeitet von einem Moderator:
hmm, scheint aber doch soweit zu funktionieren ..... 🙄

Ich habe es jetzt so versucht (mit kleinen Anpassungen, um es hioer compiliert zu bekommen)
Java:
DateFormat df = DateFormat.getDateTimeInstance();
TimeZone tz = TimeZone.getTimeZone( "Europe/Berlin" );
df.setTimeZone( tz );
Date d;
try
{
     d = df.parse( "31.08.2015 14:06:56 UTC" );
     System.out.println( d );
} catch (ParseException e) 
{
     // TODO Auto-generated catch block
     e.printStackTrace();
}
     
TimeZone tz1 = TimeZone.getTimeZone("GMT");
TimeZone tz2 = TimeZone.getTimeZone("Europe/Berlin");
long timeDifference = tz1.getRawOffset() - tz2.getRawOffset() + tz1.getDSTSavings() - tz2.getDSTSavings();
System.out.println( "differenz " + String.valueOf(timeDifference) );
die Ausgabe:
Mon Aug 31 14:06:56 CEST 2015
differenz -7200000

ist IMHO doch korrekt !! 😕

Gruß Klaus
 
ja, mit den -7200000 hatte ich ein Brett vor dem Kopf 🙁 - Asche auf mein Haupt 😡 - und ich bin weiter gekommen. Ich habe nun folgenden Code - aber vermutlich wieder irgendwie zu kompliziert und von hinten durch die Brust

Java:
TimeZone tz = TimeZone.[I]getTimeZone[/I]("Europe/Berlin");


String string = "2016-12-31 14:06:56";

SimpleDateFormat sdfToDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date1 = sdfToDate.parse(string);

System.out.println("date1 " + date1);

int currentOffsetFromUTC = tz.getRawOffset() + (tz.inDaylightTime(date1) ? tz.getDSTSavings() : 0);



Calendar cal = Calendar.[I]getInstance[/I]();

cal.setTime(date1);

System.out.print("test " + cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.DAY_OF_MONTH) + " ");

System.out.println("zeit " + cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND));



cal.add((GregorianCalendar.HOUR_OF_DAY), currentOffsetFromUTC/3600000);

System.out.print("test " + cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.DAY_OF_MONTH) + " ");

System.out.println("zeit " + cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND));

Jetzt habe ich noch das Problem, dass mir die führenden Nullen nicht angegeben werden, aber da kümmere ich mich morgen.

Danke Euch nochmal - ohne eure Anregung wäre ich nicht weiter gekommen 🙂
LG Alex
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben