Time zone guessing improved, fixes 'Assuming time zone Etc/GMT for Etc/GMT-2'

pull/2/head
Marc de Hoop 9 years ago
parent 100aa665f5
commit 8d5f815be5

@ -341,25 +341,38 @@ public class Event extends Resource {
/* guess matching Android timezone ID */
protected static void validateTimeZone(DateProperty date) {
if (date.isUtc() || !hasTime(date))
return;
String tzID = getTzId(date);
if (tzID == null)
return;
String localTZ = Time.TIMEZONE_UTC;
String availableTZs[] = SimpleTimeZone.getAvailableIDs();
for (String availableTZ : availableTZs)
if (tzID.indexOf(availableTZ, 0) != -1) {
localTZ = availableTZ;
break;
}
Log.d(TAG, "Assuming time zone " + localTZ + " for " + tzID);
date.setTimeZone(tzRegistry.getTimeZone(localTZ));
}
if (date.isUtc() || !hasTime(date))
return;
String tzID = getTzId(date);
if (tzID == null)
return;
String localTZ = Time.TIMEZONE_UTC;
boolean foundMatch = false;
String availableTZs[] = SimpleTimeZone.getAvailableIDs();
// Try to find an exact match
for (String availableTZ : availableTZs) {
if (tzID.equals(availableTZ)) {
localTZ = availableTZ;
foundMatch = true;
break;
}
}
if (!foundMatch) {
// Try to find something else that matches
for (String availableTZ : availableTZs) {
if (tzID.indexOf(availableTZ, 0) != -1) {
localTZ = availableTZ;
break;
}
}
}
Log.d(TAG, "Assuming time zone " + localTZ + " for " + tzID);
date.setTimeZone(tzRegistry.getTimeZone(localTZ));
}
public static String TimezoneDefToTzId(String timezoneDef) throws IllegalArgumentException {
try {

Loading…
Cancel
Save