Ich habe den folgenden Code, der GMT-Zeit in Ortszeit umrechnet, ich nahm es von einer Antwort hier auf StackOverflow, das Problem ist, dass dieser Code einen falschen Wert von GMT-Zeit zurückgibt .GMT zum lokalen Verbergen in falscher Weise (falscher Wert)
Meine GMT-Zeit ist: +3, aber der Code verwendet +2, es dauert die GMT-Zeit von meinem Gerät ich denke, und die Zeit meines Geräts ist +3 GMT.
Hier ist der Code:
String inputText = "12:00";
SimpleDateFormat inputFormat = new SimpleDateFormat
("kk:mm", Locale.US);
inputFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
SimpleDateFormat outputFormat =
new SimpleDateFormat("kk:mm");
// Adjust locale and zone appropriately
Date date = null;
try {
date = inputFormat.parse(inputText);
} catch (ParseException e) {
e.printStackTrace();
}
String outputText = outputFormat.format(date);
Log.i("Time","Time Is: " + outputText);
Die Log-Returns 14:00
Mich nicht, der Ausgang ist: 1970.01.01 14.00 Uhr, ich glaube nicht, dass es auf das Jahr bezogen ist, wie es die GMT-Offset aus dem Gerät kommt, also warum es braucht das Jahr auch? . – Jaeger
Ich wette du wusstest nicht, dass der GMT Offset von Europa/London in der Unix Epoche (1970/01/01) eigentlich + 1h war, weil das Vereinigte Königreich zu diesem Zeitpunkt zwischen [27. Oktober 1968 und 31. Oktober 1971] permanente Sommerzeiteinsparungen hatte ] (https://en.wikipedia.org/wiki/British_Summer_Time#Periods_of_deviation). Am JJJJ/01.01. War es für jedes Jahr +0h. Ohne das Jahr zu kennen, kann man aus solchen Gründen nicht korrekt konvertieren. –
Außerdem beginnt und endet die Sommerzeit nicht jedes Jahr am selben Tag. –