Skip to content

Instantly share code, notes, and snippets.

@dmikurube
Last active October 1, 2020 04:39
Show Gist options
  • Save dmikurube/23899471a8d9042d2649c92ebe7d1d10 to your computer and use it in GitHub Desktop.
Save dmikurube/23899471a8d9042d2649c92ebe7d1d10 to your computer and use it in GitHub Desktop.
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'joda-time:joda-time:2.9.2'
}
sourceSets {
main {
java {
srcDir '.'
}
}
}
test {
testLogging {
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
}
}
task run(type:JavaExec) {
main = project.hasProperty('main') ? project.getProperty('main') : 'JodaShortNames'
classpath = sourceSets.main.runtimeClasspath
}
import java.time.DateTimeException;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.TimeZone;
import java.util.TreeSet;
import org.joda.time.DateTimeZone;
import org.joda.time.format.DateTimeFormat;
public class JodaShortNames {
public static void main(final String[] args) {
final Instant summer = OffsetDateTime.of(2020, 6, 23, 12, 0, 0, 0, ZoneOffset.UTC).toInstant();
final Instant winter = OffsetDateTime.of(2020, 12, 23, 12, 0, 0, 0, ZoneOffset.UTC).toInstant();
final Set<String> unorderedIds = DateTimeZone.getAvailableIDs();
final List<String> ids = new ArrayList<>(unorderedIds);
Collections.sort(ids);
final TreeSet<String> shortNames = new TreeSet<>();
for (final String id : ids) {
final DateTimeZone jodaZone = DateTimeZone.forID(id);
final String jodaSummer = jodaZone.getShortName(summer.toEpochMilli());
shortNames.add(jodaSummer);
final String jodaWinter = jodaZone.getShortName(winter.toEpochMilli());
shortNames.add(jodaWinter);
final ZoneId javaZone;
try {
javaZone = ZoneId.of(id);
} catch (final DateTimeException ex) {
System.out.printf("[S] %s: %s (N/A)\n", id, jodaSummer);
System.out.printf("[W] %s: %s (N/A)\n", id, jodaWinter);
continue;
}
final TimeZone javaTimeZone = TimeZone.getTimeZone(javaZone);
final String javaSummer = javaTimeZone.getDisplayName(
javaTimeZone.inDaylightTime(Date.from(summer)), TimeZone.SHORT, Locale.ROOT);
System.out.printf("[S] %s: %s %s %s\n",
id, jodaSummer, (jodaSummer.equals(javaSummer) ? "==" : "!="), javaSummer);
final String javaWinter = javaTimeZone.getDisplayName(
javaTimeZone.inDaylightTime(Date.from(winter)), TimeZone.SHORT, Locale.ROOT);
System.out.printf("[W] %s: %s %s %s\n",
id, jodaWinter, (jodaWinter.equals(javaWinter) ? "==" : "!="), javaWinter);
}
System.out.println("\nFrom short names:\n");
for (final String shortName : shortNames) {
System.out.print(shortName);
try {
System.out.print(": " + DateTimeZone.forID(shortName).toString());
} catch (final IllegalArgumentException ex) {
System.out.print(": (error)");
}
try {
System.out.print(": " + parseDateTimeZone(shortName).toString());
} catch (final RuntimeException ex) {
System.out.print(": (error)");
}
try {
System.out.println(": " + parseJodaDateTimeZone(shortName).toString());
} catch (final RuntimeException ex) {
System.out.println(": (error)");
}
}
}
private static DateTimeZone parseDateTimeZone(final String s) {
if(s.startsWith("+") || s.startsWith("-")) {
return DateTimeZone.forID(s);
} else if (s.equals("Z")) {
return DateTimeZone.UTC;
} else {
try {
int rawOffset = (int) DateTimeFormat.forPattern("z").parseMillis(s);
if(rawOffset == 0) {
return DateTimeZone.UTC;
}
int offset = rawOffset / -1000;
int h = offset / 3600;
int m = offset % 3600;
return DateTimeZone.forOffsetHoursMinutes(h, m);
} catch (IllegalArgumentException ex) {
// parseMillis failed
}
// TimeZone.getTimeZone returns GMT zone if given timezone id is not found
// we want to only return timezone if exact match, otherwise exception
if (availableTimeZoneNames.contains(s)) {
//return TimeZone.getTimeZone(s);
return DateTimeZone.forID(s);
}
return null;
}
}
private static Set<String> availableTimeZoneNames = new HashSet<>(DateTimeZone.getAvailableIDs());
public static org.joda.time.DateTimeZone parseJodaDateTimeZone(final String timeZoneName) {
org.joda.time.DateTimeZone jodaDateTimeZoneTemporary = null;
try {
// Use TimeZone#forID, not TimeZone#getTimeZone.
// Because getTimeZone returns GMT even if given timezone id is not found.
jodaDateTimeZoneTemporary = org.joda.time.DateTimeZone.forID(timeZoneName);
} catch (IllegalArgumentException ex) {
jodaDateTimeZoneTemporary = null;
}
final org.joda.time.DateTimeZone jodaDateTimeZone = jodaDateTimeZoneTemporary;
// Embulk has accepted to parse Joda-Time's time zone IDs in Timestamps since v0.2.0
// although the formats are based on Ruby's strptime. Joda-Time's time zone IDs are
// continuously to be accepted with higher priority than Ruby's time zone IDs.
if (jodaDateTimeZone != null && (timeZoneName.startsWith("+") || timeZoneName.startsWith("-"))) {
return jodaDateTimeZone;
} else if (timeZoneName.equals("Z")) {
return org.joda.time.DateTimeZone.UTC;
} else {
try {
// DateTimeFormat.forPattern("z").parseMillis(s) is incorrect, but kept for compatibility as of now.
//
// The offset of PDT (Pacific Daylight Time) should be -07:00.
// DateTimeFormat.forPattern("z").parseMillis("PDT") however returns 8 hours (-08:00).
// DateTimeFormat.forPattern("z").parseMillis("PDT") == 28800000
// https://github.com/JodaOrg/joda-time/blob/v2.9.2/src/main/java/org/joda/time/DateTimeUtils.java#L446
//
// Embulk has used it to parse time zones for a very long time since it was v0.1.
// https://github.com/embulk/embulk/commit/b97954a5c78397e1269bbb6979d6225dfceb4e05
//
// It is kept as -08:00 for compatibility as of now.
//
// TODO: Make time zone parsing consistent.
// @see <a href="https://github.com/embulk/embulk/issues/860">https://github.com/embulk/embulk/issues/860</a>
int rawOffset = (int) org.joda.time.format.DateTimeFormat.forPattern("z").parseMillis(timeZoneName);
if (rawOffset == 0) {
return org.joda.time.DateTimeZone.UTC;
}
int offset = rawOffset / -1000;
int h = offset / 3600;
int m = offset % 3600;
return org.joda.time.DateTimeZone.forOffsetHoursMinutes(h, m);
} catch (IllegalArgumentException ex) {
// parseMillis failed
}
if (jodaDateTimeZone != null && JODA_TIME_ZONES.contains(timeZoneName)) {
return jodaDateTimeZone;
}
// Parsing Ruby-style time zones in lower priority than Joda-Time because
// TimestampParser has parsed time zones with Joda-Time for a long time
// since ancient. The behavior is kept for compatibility.
//
// The following time zone IDs are duplicated in Ruby and Joda-Time 2.9.2
// while Ruby does not care summer time and Joda-Time cares summer time.
// "CET", "EET", "Egypt", "Iran", "MET", "WET"
//
// Some zone IDs (ex. "PDT") are parsed by DateTimeFormat#parseMillis as shown above.
final int rubyStyleTimeOffsetInSecond = RubyTimeZoneTab.dateZoneToDiff(timeZoneName);
if (rubyStyleTimeOffsetInSecond != Integer.MIN_VALUE) {
return org.joda.time.DateTimeZone.forOffsetMillis(rubyStyleTimeOffsetInSecond * 1000);
}
return null;
}
}
private static final Set<String> JODA_TIME_ZONES =
Collections.unmodifiableSet(org.joda.time.DateTimeZone.getAvailableIDs());
}
class RubyTimeZoneTab {
// Ported zones_source in ext/date/date_parse.c
private static int getOffsetFromZonesSource(String z) {
switch (z) {
case "ut":
return 0 * 3600;
case "gmt":
return 0 * 3600;
case "est":
return -5 * 3600;
case "edt":
return -4 * 3600;
case "cst":
return -6 * 3600;
case "cdt":
return -5 * 3600;
case "mst":
return -7 * 3600;
case "mdt":
return -6 * 3600;
case "pst":
return -8 * 3600;
case "pdt":
return -7 * 3600;
case "a":
return 1 * 3600;
case "b":
return 2 * 3600;
case "c":
return 3 * 3600;
case "d":
return 4 * 3600;
case "e":
return 5 * 3600;
case "f":
return 6 * 3600;
case "g":
return 7 * 3600;
case "h":
return 8 * 3600;
case "i":
return 9 * 3600;
case "k":
return 10 * 3600;
case "l":
return 11 * 3600;
case "m":
return 12 * 3600;
case "n":
return -1 * 3600;
case "o":
return -2 * 3600;
case "p":
return -3 * 3600;
case "q":
return -4 * 3600;
case "r":
return -5 * 3600;
case "s":
return -6 * 3600;
case "t":
return -7 * 3600;
case "u":
return -8 * 3600;
case "v":
return -9 * 3600;
case "w":
return -10 * 3600;
case "x":
return -11 * 3600;
case "y":
return -12 * 3600;
case "z":
return 0 * 3600;
case "utc":
return 0 * 3600;
case "wet":
return 0 * 3600;
case "at":
return -2 * 3600;
case "brst":
return -2 * 3600;
case "ndt":
return -(2 * 3600 + 1800);
case "art":
return -3 * 3600;
case "adt":
return -3 * 3600;
case "brt":
return -3 * 3600;
case "clst":
return -3 * 3600;
case "nst":
return -(3 * 3600 + 1800);
case "ast":
return -4 * 3600;
case "clt":
return -4 * 3600;
case "akdt":
return -8 * 3600;
case "ydt":
return -8 * 3600;
case "akst":
return -9 * 3600;
case "hadt":
return -9 * 3600;
case "hdt":
return -9 * 3600;
case "yst":
return -9 * 3600;
case "ahst":
return -10 * 3600;
case "cat":
return -10 * 3600;
case "hast":
return -10 * 3600;
case "hst":
return -10 * 3600;
case "nt":
return -11 * 3600;
case "idlw":
return -12 * 3600;
case "bst":
return 1 * 3600;
case "cet":
return 1 * 3600;
case "fwt":
return 1 * 3600;
case "met":
return 1 * 3600;
case "mewt":
return 1 * 3600;
case "mez":
return 1 * 3600;
case "swt":
return 1 * 3600;
case "wat":
return 1 * 3600;
case "west":
return 1 * 3600;
case "cest":
return 2 * 3600;
case "eet":
return 2 * 3600;
case "fst":
return 2 * 3600;
case "mest":
return 2 * 3600;
case "mesz":
return 2 * 3600;
case "sast":
return 2 * 3600;
case "sst":
return 2 * 3600;
case "bt":
return 3 * 3600;
case "eat":
return 3 * 3600;
case "eest":
return 3 * 3600;
case "msk":
return 3 * 3600;
case "msd":
return 4 * 3600;
case "zp4":
return 4 * 3600;
case "zp5":
return 5 * 3600;
case "ist":
return 5 * 3600 + 1800;
case "zp6":
return 6 * 3600;
case "wast":
return 7 * 3600;
case "cct":
return 8 * 3600;
case "sgt":
return 8 * 3600;
case "wadt":
return 8 * 3600;
case "jst":
return 9 * 3600;
case "kst":
return 9 * 3600;
case "east":
return 10 * 3600;
case "gst":
return 10 * 3600;
case "eadt":
return 11 * 3600;
case "idle":
return 12 * 3600;
case "nzst":
return 12 * 3600;
case "nzt":
return 12 * 3600;
case "nzdt":
return 13 * 3600;
case "afghanistan":
return 16200;
case "alaskan":
return -32400;
case "arab":
return 10800;
case "arabian":
return 14400;
case "arabic":
return 10800;
case "atlantic":
return -14400;
case "aus central":
return 34200;
case "aus eastern":
return 36000;
case "azores":
return -3600;
case "canada central":
return -21600;
case "cape verde":
return -3600;
case "caucasus":
return 14400;
case "cen. australia":
return 34200;
case "central america":
return -21600;
case "central asia":
return 21600;
case "central europe":
return 3600;
case "central european":
return 3600;
case "central pacific":
return 39600;
case "central":
return -21600;
case "china":
return 28800;
case "dateline":
return -43200;
case "e. africa":
return 10800;
case "e. australia":
return 36000;
case "e. europe":
return 7200;
case "e. south america":
return -10800;
case "eastern":
return -18000;
case "egypt":
return 7200;
case "ekaterinburg":
return 18000;
case "fiji":
return 43200;
case "fle":
return 7200;
case "greenland":
return -10800;
case "greenwich":
return 0;
case "gtb":
return 7200;
case "hawaiian":
return -36000;
case "india":
return 19800;
case "iran":
return 12600;
case "jerusalem":
return 7200;
case "korea":
return 32400;
case "mexico":
return -21600;
case "mid-atlantic":
return -7200;
case "mountain":
return -25200;
case "myanmar":
return 23400;
case "n. central asia":
return 21600;
case "nepal":
return 20700;
case "new zealand":
return 43200;
case "newfoundland":
return -12600;
case "north asia east":
return 28800;
case "north asia":
return 25200;
case "pacific sa":
return -14400;
case "pacific":
return -28800;
case "romance":
return 3600;
case "russian":
return 10800;
case "sa eastern":
return -10800;
case "sa pacific":
return -18000;
case "sa western":
return -14400;
case "samoa":
return -39600;
case "se asia":
return 25200;
case "malay peninsula":
return 28800;
case "south africa":
return 7200;
case "sri lanka":
return 21600;
case "taipei":
return 28800;
case "tasmania":
return 36000;
case "tokyo":
return 32400;
case "tonga":
return 46800;
case "us eastern":
return -18000;
case "us mountain":
return -25200;
case "vladivostok":
return 36000;
case "w. australia":
return 28800;
case "w. central africa":
return 3600;
case "w. europe":
return 3600;
case "west asia":
return 18000;
case "west pacific":
return 36000;
case "yakutsk":
return 32400;
default:
return Integer.MIN_VALUE;
}
}
// Ported date_zone_to_diff in ext/date/date_parse.c
public static int dateZoneToDiff(String zone) {
String z = zone.toLowerCase();
final boolean dst;
if (z.endsWith(" daylight time")) {
z = z.substring(0, z.length() - " daylight time".length());
dst = true;
} else if (z.endsWith(" standard time")) {
z = z.substring(0, z.length() - " standard time".length());
dst = false;
} else if (z.endsWith(" dst")) {
z = z.substring(0, z.length() - " dst".length());
dst = true;
} else {
dst = false;
}
int offsetFromZonesSource;
if ((offsetFromZonesSource = getOffsetFromZonesSource(z)) != Integer.MIN_VALUE) {
if (dst) {
offsetFromZonesSource += 3600;
}
return offsetFromZonesSource;
}
if (z.startsWith("gmt") || z.startsWith("utc")) {
z = z.substring(3, z.length()); // remove "gmt" or "utc"
}
final boolean sign;
if (z.charAt(0) == '+') {
sign = true;
} else if (z.charAt(0) == '-') {
sign = false;
} else {
// if z doesn't start with "+" or "-", invalid
return Integer.MIN_VALUE;
}
z = z.substring(1);
int hour = 0;
int min = 0;
int sec = 0;
if (z.contains(":")) {
final String[] splited = z.split(":");
if (splited.length == 2) {
hour = Integer.parseInt(splited[0]);
min = Integer.parseInt(splited[1]);
} else {
hour = Integer.parseInt(splited[0]);
min = Integer.parseInt(splited[1]);
sec = Integer.parseInt(splited[2]);
}
} else if (z.contains(",") || z.contains(".")) {
// TODO min = Rational(fr.to_i, 10**fr.size) * 60
String[] splited = z.split("[\\.,]");
hour = Integer.parseInt(splited[0]);
min = (int) (Integer.parseInt(splited[1]) * 60 / Math.pow(10, splited[1].length()));
} else {
final int len = z.length();
if (len % 2 != 0) {
if (len >= 1) {
hour = Integer.parseInt(z.substring(0, 1));
}
if (len >= 3) {
min = Integer.parseInt(z.substring(1, 3));
}
if (len >= 5) {
sec = Integer.parseInt(z.substring(3, 5));
}
} else {
if (len >= 2) {
hour = Integer.parseInt(z.substring(0, 2));
}
if (len >= 4) {
min = Integer.parseInt(z.substring(2, 4));
}
if (len >= 6) {
sec = Integer.parseInt(z.substring(4, 6));
}
}
}
final int offset = hour * 3600 + min * 60 + sec;
return sign ? offset : -offset;
}
private RubyTimeZoneTab() {}
}
@dmikurube
Copy link
Author

dmikurube commented May 13, 2020

[S] Africa/Abidjan: GMT == GMT
[W] Africa/Abidjan: GMT == GMT
[S] Africa/Accra: GMT == GMT
[W] Africa/Accra: GMT == GMT
[S] Africa/Addis_Ababa: EAT == EAT
[W] Africa/Addis_Ababa: EAT == EAT
[S] Africa/Algiers: CET == CET
[W] Africa/Algiers: CET == CET
[S] Africa/Asmara: EAT == EAT
[W] Africa/Asmara: EAT == EAT
[S] Africa/Asmera: EAT == EAT
[W] Africa/Asmera: EAT == EAT
[S] Africa/Bamako: GMT == GMT
[W] Africa/Bamako: GMT == GMT
[S] Africa/Bangui: WAT == WAT
[W] Africa/Bangui: WAT == WAT
[S] Africa/Banjul: GMT == GMT
[W] Africa/Banjul: GMT == GMT
[S] Africa/Bissau: GMT == GMT
[W] Africa/Bissau: GMT == GMT
[S] Africa/Blantyre: CAT == CAT
[W] Africa/Blantyre: CAT == CAT
[S] Africa/Brazzaville: WAT == WAT
[W] Africa/Brazzaville: WAT == WAT
[S] Africa/Bujumbura: CAT == CAT
[W] Africa/Bujumbura: CAT == CAT
[S] Africa/Cairo: EET == EET
[W] Africa/Cairo: EET == EET
[S] Africa/Casablanca: WEST == WEST
[W] Africa/Casablanca: WET != WEST
[S] Africa/Ceuta: CEST == CEST
[W] Africa/Ceuta: CET == CET
[S] Africa/Conakry: GMT == GMT
[W] Africa/Conakry: GMT == GMT
[S] Africa/Dakar: GMT == GMT
[W] Africa/Dakar: GMT == GMT
[S] Africa/Dar_es_Salaam: EAT == EAT
[W] Africa/Dar_es_Salaam: EAT == EAT
[S] Africa/Djibouti: EAT == EAT
[W] Africa/Djibouti: EAT == EAT
[S] Africa/Douala: WAT == WAT
[W] Africa/Douala: WAT == WAT
[S] Africa/El_Aaiun: WEST == WEST
[W] Africa/El_Aaiun: WET != WEST
[S] Africa/Freetown: GMT == GMT
[W] Africa/Freetown: GMT == GMT
[S] Africa/Gaborone: CAT == CAT
[W] Africa/Gaborone: CAT == CAT
[S] Africa/Harare: CAT == CAT
[W] Africa/Harare: CAT == CAT
[S] Africa/Johannesburg: SAST == SAST
[W] Africa/Johannesburg: SAST == SAST
[S] Africa/Juba: EAT == EAT
[W] Africa/Juba: EAT == EAT
[S] Africa/Kampala: EAT == EAT
[W] Africa/Kampala: EAT == EAT
[S] Africa/Khartoum: CAT == CAT
[W] Africa/Khartoum: CAT == CAT
[S] Africa/Kigali: CAT == CAT
[W] Africa/Kigali: CAT == CAT
[S] Africa/Kinshasa: WAT == WAT
[W] Africa/Kinshasa: WAT == WAT
[S] Africa/Lagos: WAT == WAT
[W] Africa/Lagos: WAT == WAT
[S] Africa/Libreville: WAT == WAT
[W] Africa/Libreville: WAT == WAT
[S] Africa/Lome: GMT == GMT
[W] Africa/Lome: GMT == GMT
[S] Africa/Luanda: WAT == WAT
[W] Africa/Luanda: WAT == WAT
[S] Africa/Lubumbashi: CAT == CAT
[W] Africa/Lubumbashi: CAT == CAT
[S] Africa/Lusaka: CAT == CAT
[W] Africa/Lusaka: CAT == CAT
[S] Africa/Malabo: WAT == WAT
[W] Africa/Malabo: WAT == WAT
[S] Africa/Maputo: CAT == CAT
[W] Africa/Maputo: CAT == CAT
[S] Africa/Maseru: SAST == SAST
[W] Africa/Maseru: SAST == SAST
[S] Africa/Mbabane: SAST == SAST
[W] Africa/Mbabane: SAST == SAST
[S] Africa/Mogadishu: EAT == EAT
[W] Africa/Mogadishu: EAT == EAT
[S] Africa/Monrovia: GMT == GMT
[W] Africa/Monrovia: GMT == GMT
[S] Africa/Nairobi: EAT == EAT
[W] Africa/Nairobi: EAT == EAT
[S] Africa/Ndjamena: WAT == WAT
[W] Africa/Ndjamena: WAT == WAT
[S] Africa/Niamey: WAT == WAT
[W] Africa/Niamey: WAT == WAT
[S] Africa/Nouakchott: GMT == GMT
[W] Africa/Nouakchott: GMT == GMT
[S] Africa/Ouagadougou: GMT == GMT
[W] Africa/Ouagadougou: GMT == GMT
[S] Africa/Porto-Novo: WAT == WAT
[W] Africa/Porto-Novo: WAT == WAT
[S] Africa/Sao_Tome: GMT == GMT
[W] Africa/Sao_Tome: GMT == GMT
[S] Africa/Timbuktu: GMT == GMT
[W] Africa/Timbuktu: GMT == GMT
[S] Africa/Tripoli: EET == EET
[W] Africa/Tripoli: EET == EET
[S] Africa/Tunis: CET == CET
[W] Africa/Tunis: CET == CET
[S] Africa/Windhoek: CAT == CAT
[W] Africa/Windhoek: CAST != CAT
[S] America/Adak: HDT == HDT
[W] America/Adak: HST == HST
[S] America/Anchorage: AKDT == AKDT
[W] America/Anchorage: AKST == AKST
[S] America/Anguilla: AST == AST
[W] America/Anguilla: AST == AST
[S] America/Antigua: AST == AST
[W] America/Antigua: AST == AST
[S] America/Araguaina: BRT == BRT
[W] America/Araguaina: BRT == BRT
[S] America/Argentina/Buenos_Aires: ART == ART
[W] America/Argentina/Buenos_Aires: ART == ART
[S] America/Argentina/Catamarca: ART == ART
[W] America/Argentina/Catamarca: ART == ART
[S] America/Argentina/ComodRivadavia: ART == ART
[W] America/Argentina/ComodRivadavia: ART == ART
[S] America/Argentina/Cordoba: ART == ART
[W] America/Argentina/Cordoba: ART == ART
[S] America/Argentina/Jujuy: ART == ART
[W] America/Argentina/Jujuy: ART == ART
[S] America/Argentina/La_Rioja: ART == ART
[W] America/Argentina/La_Rioja: ART == ART
[S] America/Argentina/Mendoza: ART == ART
[W] America/Argentina/Mendoza: ART == ART
[S] America/Argentina/Rio_Gallegos: ART == ART
[W] America/Argentina/Rio_Gallegos: ART == ART
[S] America/Argentina/Salta: ART == ART
[W] America/Argentina/Salta: ART == ART
[S] America/Argentina/San_Juan: ART == ART
[W] America/Argentina/San_Juan: ART == ART
[S] America/Argentina/San_Luis: ART == ART
[W] America/Argentina/San_Luis: ART == ART
[S] America/Argentina/Tucuman: ART == ART
[W] America/Argentina/Tucuman: ART == ART
[S] America/Argentina/Ushuaia: ART == ART
[W] America/Argentina/Ushuaia: ART == ART
[S] America/Aruba: AST == AST
[W] America/Aruba: AST == AST
[S] America/Asuncion: PYT == PYT
[W] America/Asuncion: PYST == PYST
[S] America/Atikokan: EST == EST
[W] America/Atikokan: EST == EST
[S] America/Atka: HDT == HDT
[W] America/Atka: HST == HST
[S] America/Bahia: BRT == BRT
[W] America/Bahia: BRT == BRT
[S] America/Bahia_Banderas: CDT == CDT
[W] America/Bahia_Banderas: CST == CST
[S] America/Barbados: AST == AST
[W] America/Barbados: AST == AST
[S] America/Belem: BRT == BRT
[W] America/Belem: BRT == BRT
[S] America/Belize: CST == CST
[W] America/Belize: CST == CST
[S] America/Blanc-Sablon: AST == AST
[W] America/Blanc-Sablon: AST == AST
[S] America/Boa_Vista: AMT == AMT
[W] America/Boa_Vista: AMT == AMT
[S] America/Bogota: COT == COT
[W] America/Bogota: COT == COT
[S] America/Boise: MDT == MDT
[W] America/Boise: MST == MST
[S] America/Buenos_Aires: ART == ART
[W] America/Buenos_Aires: ART == ART
[S] America/Cambridge_Bay: MDT == MDT
[W] America/Cambridge_Bay: MST == MST
[S] America/Campo_Grande: AMT == AMT
[W] America/Campo_Grande: AMST != AMT
[S] America/Cancun: EST == EST
[W] America/Cancun: EST == EST
[S] America/Caracas: VET == VET
[W] America/Caracas: VET == VET
[S] America/Catamarca: ART == ART
[W] America/Catamarca: ART == ART
[S] America/Cayenne: GFT == GFT
[W] America/Cayenne: GFT == GFT
[S] America/Cayman: EST == EST
[W] America/Cayman: EST == EST
[S] America/Chicago: CDT == CDT
[W] America/Chicago: CST == CST
[S] America/Chihuahua: MDT == MDT
[W] America/Chihuahua: MST == MST
[S] America/Coral_Harbour: EST == EST
[W] America/Coral_Harbour: EST == EST
[S] America/Cordoba: ART == ART
[W] America/Cordoba: ART == ART
[S] America/Costa_Rica: CST == CST
[W] America/Costa_Rica: CST == CST
[S] America/Creston: MST == MST
[W] America/Creston: MST == MST
[S] America/Cuiaba: AMT == AMT
[W] America/Cuiaba: AMST != AMT
[S] America/Curacao: AST == AST
[W] America/Curacao: AST == AST
[S] America/Danmarkshavn: GMT == GMT
[W] America/Danmarkshavn: GMT == GMT
[S] America/Dawson: MDT != MST
[W] America/Dawson: MST == MST
[S] America/Dawson_Creek: MST == MST
[W] America/Dawson_Creek: MST == MST
[S] America/Denver: MDT == MDT
[W] America/Denver: MST == MST
[S] America/Detroit: EDT == EDT
[W] America/Detroit: EST == EST
[S] America/Dominica: AST == AST
[W] America/Dominica: AST == AST
[S] America/Edmonton: MDT == MDT
[W] America/Edmonton: MST == MST
[S] America/Eirunepe: ACT == ACT
[W] America/Eirunepe: ACT == ACT
[S] America/El_Salvador: CST == CST
[W] America/El_Salvador: CST == CST
[S] America/Ensenada: PDT == PDT
[W] America/Ensenada: PST == PST
[S] America/Fort_Nelson: MST == MST
[W] America/Fort_Nelson: MST == MST
[S] America/Fort_Wayne: EDT == EDT
[W] America/Fort_Wayne: EST == EST
[S] America/Fortaleza: BRT == BRT
[W] America/Fortaleza: BRT == BRT
[S] America/Glace_Bay: ADT == ADT
[W] America/Glace_Bay: AST == AST
[S] America/Godthab: WGST == WGST
[W] America/Godthab: WGT == WGT
[S] America/Goose_Bay: ADT == ADT
[W] America/Goose_Bay: AST == AST
[S] America/Grand_Turk: EST != EDT
[W] America/Grand_Turk: EST == EST
[S] America/Grenada: AST == AST
[W] America/Grenada: AST == AST
[S] America/Guadeloupe: AST == AST
[W] America/Guadeloupe: AST == AST
[S] America/Guatemala: CST == CST
[W] America/Guatemala: CST == CST
[S] America/Guayaquil: ECT == ECT
[W] America/Guayaquil: ECT == ECT
[S] America/Guyana: GYT == GYT
[W] America/Guyana: GYT == GYT
[S] America/Halifax: ADT == ADT
[W] America/Halifax: AST == AST
[S] America/Havana: CDT == CDT
[W] America/Havana: CST == CST
[S] America/Hermosillo: MST == MST
[W] America/Hermosillo: MST == MST
[S] America/Indiana/Indianapolis: EDT == EDT
[W] America/Indiana/Indianapolis: EST == EST
[S] America/Indiana/Knox: CDT == CDT
[W] America/Indiana/Knox: CST == CST
[S] America/Indiana/Marengo: EDT == EDT
[W] America/Indiana/Marengo: EST == EST
[S] America/Indiana/Petersburg: EDT == EDT
[W] America/Indiana/Petersburg: EST == EST
[S] America/Indiana/Tell_City: CDT == CDT
[W] America/Indiana/Tell_City: CST == CST
[S] America/Indiana/Vevay: EDT == EDT
[W] America/Indiana/Vevay: EST == EST
[S] America/Indiana/Vincennes: EDT == EDT
[W] America/Indiana/Vincennes: EST == EST
[S] America/Indiana/Winamac: EDT == EDT
[W] America/Indiana/Winamac: EST == EST
[S] America/Indianapolis: EDT == EDT
[W] America/Indianapolis: EST == EST
[S] America/Inuvik: MDT == MDT
[W] America/Inuvik: MST == MST
[S] America/Iqaluit: EDT == EDT
[W] America/Iqaluit: EST == EST
[S] America/Jamaica: EST == EST
[W] America/Jamaica: EST == EST
[S] America/Jujuy: ART == ART
[W] America/Jujuy: ART == ART
[S] America/Juneau: AKDT == AKDT
[W] America/Juneau: AKST == AKST
[S] America/Kentucky/Louisville: EDT == EDT
[W] America/Kentucky/Louisville: EST == EST
[S] America/Kentucky/Monticello: EDT == EDT
[W] America/Kentucky/Monticello: EST == EST
[S] America/Knox_IN: CDT == CDT
[W] America/Knox_IN: CST == CST
[S] America/Kralendijk: AST == AST
[W] America/Kralendijk: AST == AST
[S] America/La_Paz: BOT == BOT
[W] America/La_Paz: BOT == BOT
[S] America/Lima: PET == PET
[W] America/Lima: PET == PET
[S] America/Los_Angeles: PDT == PDT
[W] America/Los_Angeles: PST == PST
[S] America/Louisville: EDT == EDT
[W] America/Louisville: EST == EST
[S] America/Lower_Princes: AST == AST
[W] America/Lower_Princes: AST == AST
[S] America/Maceio: BRT == BRT
[W] America/Maceio: BRT == BRT
[S] America/Managua: CST == CST
[W] America/Managua: CST == CST
[S] America/Manaus: AMT == AMT
[W] America/Manaus: AMT == AMT
[S] America/Marigot: AST == AST
[W] America/Marigot: AST == AST
[S] America/Martinique: AST == AST
[W] America/Martinique: AST == AST
[S] America/Matamoros: CDT == CDT
[W] America/Matamoros: CST == CST
[S] America/Mazatlan: MDT == MDT
[W] America/Mazatlan: MST == MST
[S] America/Mendoza: ART == ART
[W] America/Mendoza: ART == ART
[S] America/Menominee: CDT == CDT
[W] America/Menominee: CST == CST
[S] America/Merida: CDT == CDT
[W] America/Merida: CST == CST
[S] America/Metlakatla: AKDT == AKDT
[W] America/Metlakatla: AKST == AKST
[S] America/Mexico_City: CDT == CDT
[W] America/Mexico_City: CST == CST
[S] America/Miquelon: PMDT == PMDT
[W] America/Miquelon: PMST == PMST
[S] America/Moncton: ADT == ADT
[W] America/Moncton: AST == AST
[S] America/Monterrey: CDT == CDT
[W] America/Monterrey: CST == CST
[S] America/Montevideo: UYT == UYT
[W] America/Montevideo: UYT == UYT
[S] America/Montreal: EDT == EDT
[W] America/Montreal: EST == EST
[S] America/Montserrat: AST == AST
[W] America/Montserrat: AST == AST
[S] America/Nassau: EDT == EDT
[W] America/Nassau: EST == EST
[S] America/New_York: EDT == EDT
[W] America/New_York: EST == EST
[S] America/Nipigon: EDT == EDT
[W] America/Nipigon: EST == EST
[S] America/Nome: AKDT == AKDT
[W] America/Nome: AKST == AKST
[S] America/Noronha: FNT == FNT
[W] America/Noronha: FNT == FNT
[S] America/North_Dakota/Beulah: CDT == CDT
[W] America/North_Dakota/Beulah: CST == CST
[S] America/North_Dakota/Center: CDT == CDT
[W] America/North_Dakota/Center: CST == CST
[S] America/North_Dakota/New_Salem: CDT == CDT
[W] America/North_Dakota/New_Salem: CST == CST
[S] America/Ojinaga: MDT == MDT
[W] America/Ojinaga: MST == MST
[S] America/Panama: EST == EST
[W] America/Panama: EST == EST
[S] America/Pangnirtung: EDT == EDT
[W] America/Pangnirtung: EST == EST
[S] America/Paramaribo: SRT == SRT
[W] America/Paramaribo: SRT == SRT
[S] America/Phoenix: MST == MST
[W] America/Phoenix: MST == MST
[S] America/Port-au-Prince: EDT == EDT
[W] America/Port-au-Prince: EST == EST
[S] America/Port_of_Spain: AST == AST
[W] America/Port_of_Spain: AST == AST
[S] America/Porto_Acre: ACT == ACT
[W] America/Porto_Acre: ACT == ACT
[S] America/Porto_Velho: AMT == AMT
[W] America/Porto_Velho: AMT == AMT
[S] America/Puerto_Rico: AST == AST
[W] America/Puerto_Rico: AST == AST
[S] America/Rainy_River: CDT == CDT
[W] America/Rainy_River: CST == CST
[S] America/Rankin_Inlet: CDT == CDT
[W] America/Rankin_Inlet: CST == CST
[S] America/Recife: BRT == BRT
[W] America/Recife: BRT == BRT
[S] America/Regina: CST == CST
[W] America/Regina: CST == CST
[S] America/Resolute: CDT == CDT
[W] America/Resolute: CST == CST
[S] America/Rio_Branco: ACT == ACT
[W] America/Rio_Branco: ACT == ACT
[S] America/Rosario: ART == ART
[W] America/Rosario: ART == ART
[S] America/Santa_Isabel: PDT == PDT
[W] America/Santa_Isabel: PST == PST
[S] America/Santarem: BRT == BRT
[W] America/Santarem: BRT == BRT
[S] America/Santiago: CLT == CLT
[W] America/Santiago: CLT != CLST
[S] America/Santo_Domingo: AST == AST
[W] America/Santo_Domingo: AST == AST
[S] America/Sao_Paulo: BRT == BRT
[W] America/Sao_Paulo: BRST != BRT
[S] America/Scoresbysund: EGST == EGST
[W] America/Scoresbysund: EGT == EGT
[S] America/Shiprock: MDT == MDT
[W] America/Shiprock: MST == MST
[S] America/Sitka: AKDT == AKDT
[W] America/Sitka: AKST == AKST
[S] America/St_Barthelemy: AST == AST
[W] America/St_Barthelemy: AST == AST
[S] America/St_Johns: NDT == NDT
[W] America/St_Johns: NST == NST
[S] America/St_Kitts: AST == AST
[W] America/St_Kitts: AST == AST
[S] America/St_Lucia: AST == AST
[W] America/St_Lucia: AST == AST
[S] America/St_Thomas: AST == AST
[W] America/St_Thomas: AST == AST
[S] America/St_Vincent: AST == AST
[W] America/St_Vincent: AST == AST
[S] America/Swift_Current: CST == CST
[W] America/Swift_Current: CST == CST
[S] America/Tegucigalpa: CST == CST
[W] America/Tegucigalpa: CST == CST
[S] America/Thule: ADT == ADT
[W] America/Thule: AST == AST
[S] America/Thunder_Bay: EDT == EDT
[W] America/Thunder_Bay: EST == EST
[S] America/Tijuana: PDT == PDT
[W] America/Tijuana: PST == PST
[S] America/Toronto: EDT == EDT
[W] America/Toronto: EST == EST
[S] America/Tortola: AST == AST
[W] America/Tortola: AST == AST
[S] America/Vancouver: PDT == PDT
[W] America/Vancouver: PST == PST
[S] America/Virgin: AST == AST
[W] America/Virgin: AST == AST
[S] America/Whitehorse: MDT != MST
[W] America/Whitehorse: MST == MST
[S] America/Winnipeg: CDT == CDT
[W] America/Winnipeg: CST == CST
[S] America/Yakutat: AKDT == AKDT
[W] America/Yakutat: AKST == AKST
[S] America/Yellowknife: MDT == MDT
[W] America/Yellowknife: MST == MST
[S] Antarctica/Casey: AWST == AWST
[W] Antarctica/Casey: AWST == AWST
[S] Antarctica/Davis: DAVT == DAVT
[W] Antarctica/Davis: DAVT == DAVT
[S] Antarctica/DumontDUrville: DDUT == DDUT
[W] Antarctica/DumontDUrville: DDUT == DDUT
[S] Antarctica/Macquarie: MIST == MIST
[W] Antarctica/Macquarie: MIST == MIST
[S] Antarctica/Mawson: MAWT == MAWT
[W] Antarctica/Mawson: MAWT == MAWT
[S] Antarctica/McMurdo: NZST == NZST
[W] Antarctica/McMurdo: NZDT == NZDT
[S] Antarctica/Palmer: CLT == CLT
[W] Antarctica/Palmer: CLT == CLT
[S] Antarctica/Rothera: ROTT == ROTT
[W] Antarctica/Rothera: ROTT == ROTT
[S] Antarctica/South_Pole: NZST == NZST
[W] Antarctica/South_Pole: NZDT == NZDT
[S] Antarctica/Syowa: SYOT == SYOT
[W] Antarctica/Syowa: SYOT == SYOT
[S] Antarctica/Troll: CEST == CEST
[W] Antarctica/Troll: UTC == UTC
[S] Antarctica/Vostok: VOST == VOST
[W] Antarctica/Vostok: VOST == VOST
[S] Arctic/Longyearbyen: CEST == CEST
[W] Arctic/Longyearbyen: CET == CET
[S] Asia/Aden: AST == AST
[W] Asia/Aden: AST == AST
[S] Asia/Almaty: ALMT == ALMT
[W] Asia/Almaty: ALMT == ALMT
[S] Asia/Amman: EEST == EEST
[W] Asia/Amman: EET == EET
[S] Asia/Anadyr: ANAT == ANAT
[W] Asia/Anadyr: ANAT == ANAT
[S] Asia/Aqtau: AQTT == AQTT
[W] Asia/Aqtau: AQTT == AQTT
[S] Asia/Aqtobe: AQTT == AQTT
[W] Asia/Aqtobe: AQTT == AQTT
[S] Asia/Ashgabat: TMT == TMT
[W] Asia/Ashgabat: TMT == TMT
[S] Asia/Ashkhabad: TMT == TMT
[W] Asia/Ashkhabad: TMT == TMT
[S] Asia/Baghdad: AST == AST
[W] Asia/Baghdad: AST == AST
[S] Asia/Bahrain: AST == AST
[W] Asia/Bahrain: AST == AST
[S] Asia/Baku: AZST != AZT
[W] Asia/Baku: AZT == AZT
[S] Asia/Bangkok: ICT == ICT
[W] Asia/Bangkok: ICT == ICT
[S] Asia/Beirut: EEST == EEST
[W] Asia/Beirut: EET == EET
[S] Asia/Bishkek: KGT == KGT
[W] Asia/Bishkek: KGT == KGT
[S] Asia/Brunei: BNT == BNT
[W] Asia/Brunei: BNT == BNT
[S] Asia/Calcutta: IST == IST
[W] Asia/Calcutta: IST == IST
[S] Asia/Chita: YAKT == YAKT
[W] Asia/Chita: YAKT == YAKT
[S] Asia/Choibalsan: CHOST != CHOT
[W] Asia/Choibalsan: CHOT == CHOT
[S] Asia/Chongqing: CST == CST
[W] Asia/Chongqing: CST == CST
[S] Asia/Chungking: CST == CST
[W] Asia/Chungking: CST == CST
[S] Asia/Colombo: IST == IST
[W] Asia/Colombo: IST == IST
[S] Asia/Dacca: BDT == BDT
[W] Asia/Dacca: BDT == BDT
[S] Asia/Damascus: EEST == EEST
[W] Asia/Damascus: EET == EET
[S] Asia/Dhaka: BDT == BDT
[W] Asia/Dhaka: BDT == BDT
[S] Asia/Dili: TLT == TLT
[W] Asia/Dili: TLT == TLT
[S] Asia/Dubai: GST == GST
[W] Asia/Dubai: GST == GST
[S] Asia/Dushanbe: TJT == TJT
[W] Asia/Dushanbe: TJT == TJT
[S] Asia/Gaza: EEST == EEST
[W] Asia/Gaza: EET == EET
[S] Asia/Harbin: CST == CST
[W] Asia/Harbin: CST == CST
[S] Asia/Hebron: EEST == EEST
[W] Asia/Hebron: EET == EET
[S] Asia/Ho_Chi_Minh: ICT == ICT
[W] Asia/Ho_Chi_Minh: ICT == ICT
[S] Asia/Hong_Kong: HKT == HKT
[W] Asia/Hong_Kong: HKT == HKT
[S] Asia/Hovd: HOVST != HOVT
[W] Asia/Hovd: HOVT == HOVT
[S] Asia/Irkutsk: IRKT == IRKT
[W] Asia/Irkutsk: IRKT == IRKT
[S] Asia/Istanbul: TRST != TRT
[W] Asia/Istanbul: TRT == TRT
[S] Asia/Jakarta: WIB == WIB
[W] Asia/Jakarta: WIB == WIB
[S] Asia/Jayapura: WIT == WIT
[W] Asia/Jayapura: WIT == WIT
[S] Asia/Jerusalem: IDT == IDT
[W] Asia/Jerusalem: IST == IST
[S] Asia/Kabul: AFT == AFT
[W] Asia/Kabul: AFT == AFT
[S] Asia/Kamchatka: PETT == PETT
[W] Asia/Kamchatka: PETT == PETT
[S] Asia/Karachi: PKT == PKT
[W] Asia/Karachi: PKT == PKT
[S] Asia/Kashgar: XJT == XJT
[W] Asia/Kashgar: XJT == XJT
[S] Asia/Kathmandu: NPT == NPT
[W] Asia/Kathmandu: NPT == NPT
[S] Asia/Katmandu: NPT == NPT
[W] Asia/Katmandu: NPT == NPT
[S] Asia/Khandyga: YAKT == YAKT
[W] Asia/Khandyga: YAKT == YAKT
[S] Asia/Kolkata: IST == IST
[W] Asia/Kolkata: IST == IST
[S] Asia/Krasnoyarsk: KRAT == KRAT
[W] Asia/Krasnoyarsk: KRAT == KRAT
[S] Asia/Kuala_Lumpur: MYT == MYT
[W] Asia/Kuala_Lumpur: MYT == MYT
[S] Asia/Kuching: MYT == MYT
[W] Asia/Kuching: MYT == MYT
[S] Asia/Kuwait: AST == AST
[W] Asia/Kuwait: AST == AST
[S] Asia/Macao: CST == CST
[W] Asia/Macao: CST == CST
[S] Asia/Macau: CST == CST
[W] Asia/Macau: CST == CST
[S] Asia/Magadan: MAGT == MAGT
[W] Asia/Magadan: MAGT == MAGT
[S] Asia/Makassar: WITA == WITA
[W] Asia/Makassar: WITA == WITA
[S] Asia/Manila: PST == PST
[W] Asia/Manila: PST == PST
[S] Asia/Muscat: GST == GST
[W] Asia/Muscat: GST == GST
[S] Asia/Nicosia: EEST == EEST
[W] Asia/Nicosia: EET == EET
[S] Asia/Novokuznetsk: KRAT == KRAT
[W] Asia/Novokuznetsk: KRAT == KRAT
[S] Asia/Novosibirsk: NOVT == NOVT
[W] Asia/Novosibirsk: NOVT == NOVT
[S] Asia/Omsk: OMST == OMST
[W] Asia/Omsk: OMST == OMST
[S] Asia/Oral: ORAT == ORAT
[W] Asia/Oral: ORAT == ORAT
[S] Asia/Phnom_Penh: ICT == ICT
[W] Asia/Phnom_Penh: ICT == ICT
[S] Asia/Pontianak: WIB == WIB
[W] Asia/Pontianak: WIB == WIB
[S] Asia/Pyongyang: KST == KST
[W] Asia/Pyongyang: KST == KST
[S] Asia/Qatar: AST == AST
[W] Asia/Qatar: AST == AST
[S] Asia/Qyzylorda: QYZT == QYZT
[W] Asia/Qyzylorda: QYZT == QYZT
[S] Asia/Rangoon: MMT == MMT
[W] Asia/Rangoon: MMT == MMT
[S] Asia/Riyadh: AST == AST
[W] Asia/Riyadh: AST == AST
[S] Asia/Saigon: ICT == ICT
[W] Asia/Saigon: ICT == ICT
[S] Asia/Sakhalin: SAKT == SAKT
[W] Asia/Sakhalin: SAKT == SAKT
[S] Asia/Samarkand: UZT == UZT
[W] Asia/Samarkand: UZT == UZT
[S] Asia/Seoul: KST == KST
[W] Asia/Seoul: KST == KST
[S] Asia/Shanghai: CST == CST
[W] Asia/Shanghai: CST == CST
[S] Asia/Singapore: SGT == SGT
[W] Asia/Singapore: SGT == SGT
[S] Asia/Srednekolymsk: SRET == SRET
[W] Asia/Srednekolymsk: SRET == SRET
[S] Asia/Taipei: CST == CST
[W] Asia/Taipei: CST == CST
[S] Asia/Tashkent: UZT == UZT
[W] Asia/Tashkent: UZT == UZT
[S] Asia/Tbilisi: GET == GET
[W] Asia/Tbilisi: GET == GET
[S] Asia/Tehran: IRDT == IRDT
[W] Asia/Tehran: IRST == IRST
[S] Asia/Tel_Aviv: IDT == IDT
[W] Asia/Tel_Aviv: IST == IST
[S] Asia/Thimbu: BTT == BTT
[W] Asia/Thimbu: BTT == BTT
[S] Asia/Thimphu: BTT == BTT
[W] Asia/Thimphu: BTT == BTT
[S] Asia/Tokyo: JST == JST
[W] Asia/Tokyo: JST == JST
[S] Asia/Ujung_Pandang: WITA == WITA
[W] Asia/Ujung_Pandang: WITA == WITA
[S] Asia/Ulaanbaatar: ULAST != ULAT
[W] Asia/Ulaanbaatar: ULAT == ULAT
[S] Asia/Ulan_Bator: ULAST != ULAT
[W] Asia/Ulan_Bator: ULAT == ULAT
[S] Asia/Urumqi: XJT == XJT
[W] Asia/Urumqi: XJT == XJT
[S] Asia/Ust-Nera: VLAT == VLAT
[W] Asia/Ust-Nera: VLAT == VLAT
[S] Asia/Vientiane: ICT == ICT
[W] Asia/Vientiane: ICT == ICT
[S] Asia/Vladivostok: VLAT == VLAT
[W] Asia/Vladivostok: VLAT == VLAT
[S] Asia/Yakutsk: YAKT == YAKT
[W] Asia/Yakutsk: YAKT == YAKT
[S] Asia/Yekaterinburg: YEKT == YEKT
[W] Asia/Yekaterinburg: YEKT == YEKT
[S] Asia/Yerevan: AMT == AMT
[W] Asia/Yerevan: AMT == AMT
[S] Atlantic/Azores: AZOST == AZOST
[W] Atlantic/Azores: AZOT == AZOT
[S] Atlantic/Bermuda: ADT == ADT
[W] Atlantic/Bermuda: AST == AST
[S] Atlantic/Canary: WEST == WEST
[W] Atlantic/Canary: WET == WET
[S] Atlantic/Cape_Verde: CVT == CVT
[W] Atlantic/Cape_Verde: CVT == CVT
[S] Atlantic/Faeroe: WEST == WEST
[W] Atlantic/Faeroe: WET == WET
[S] Atlantic/Faroe: WEST == WEST
[W] Atlantic/Faroe: WET == WET
[S] Atlantic/Jan_Mayen: CEST == CEST
[W] Atlantic/Jan_Mayen: CET == CET
[S] Atlantic/Madeira: WEST == WEST
[W] Atlantic/Madeira: WET == WET
[S] Atlantic/Reykjavik: GMT == GMT
[W] Atlantic/Reykjavik: GMT == GMT
[S] Atlantic/South_Georgia: GST == GST
[W] Atlantic/South_Georgia: GST == GST
[S] Atlantic/St_Helena: GMT == GMT
[W] Atlantic/St_Helena: GMT == GMT
[S] Atlantic/Stanley: FKT == FKT
[W] Atlantic/Stanley: FKT == FKT
[S] Australia/ACT: AEST == AEST
[W] Australia/ACT: AEDT == AEDT
[S] Australia/Adelaide: ACST == ACST
[W] Australia/Adelaide: ACDT == ACDT
[S] Australia/Brisbane: AEST == AEST
[W] Australia/Brisbane: AEST == AEST
[S] Australia/Broken_Hill: ACST == ACST
[W] Australia/Broken_Hill: ACDT == ACDT
[S] Australia/Canberra: AEST == AEST
[W] Australia/Canberra: AEDT == AEDT
[S] Australia/Currie: AEST == AEST
[W] Australia/Currie: AEDT == AEDT
[S] Australia/Darwin: ACST == ACST
[W] Australia/Darwin: ACST == ACST
[S] Australia/Eucla: ACWST == ACWST
[W] Australia/Eucla: ACWST == ACWST
[S] Australia/Hobart: AEST == AEST
[W] Australia/Hobart: AEDT == AEDT
[S] Australia/LHI: LHST == LHST
[W] Australia/LHI: LHDT == LHDT
[S] Australia/Lindeman: AEST == AEST
[W] Australia/Lindeman: AEST == AEST
[S] Australia/Lord_Howe: LHST == LHST
[W] Australia/Lord_Howe: LHDT == LHDT
[S] Australia/Melbourne: AEST == AEST
[W] Australia/Melbourne: AEDT == AEDT
[S] Australia/NSW: AEST == AEST
[W] Australia/NSW: AEDT == AEDT
[S] Australia/North: ACST == ACST
[W] Australia/North: ACST == ACST
[S] Australia/Perth: AWST == AWST
[W] Australia/Perth: AWST == AWST
[S] Australia/Queensland: AEST == AEST
[W] Australia/Queensland: AEST == AEST
[S] Australia/South: ACST == ACST
[W] Australia/South: ACDT == ACDT
[S] Australia/Sydney: AEST == AEST
[W] Australia/Sydney: AEDT == AEDT
[S] Australia/Tasmania: AEST == AEST
[W] Australia/Tasmania: AEDT == AEDT
[S] Australia/Victoria: AEST == AEST
[W] Australia/Victoria: AEDT == AEDT
[S] Australia/West: AWST == AWST
[W] Australia/West: AWST == AWST
[S] Australia/Yancowinna: ACST == ACST
[W] Australia/Yancowinna: ACDT == ACDT
[S] Brazil/Acre: ACT == ACT
[W] Brazil/Acre: ACT == ACT
[S] Brazil/DeNoronha: FNT == FNT
[W] Brazil/DeNoronha: FNT == FNT
[S] Brazil/East: BRT == BRT
[W] Brazil/East: BRST != BRT
[S] Brazil/West: AMT == AMT
[W] Brazil/West: AMT == AMT
[S] CET: CEST == CEST
[W] CET: CET == CET
[S] CST6CDT: CDT == CDT
[W] CST6CDT: CST == CST
[S] Canada/Atlantic: ADT == ADT
[W] Canada/Atlantic: AST == AST
[S] Canada/Central: CDT == CDT
[W] Canada/Central: CST == CST
[S] Canada/East-Saskatchewan: CST (N/A)
[W] Canada/East-Saskatchewan: CST (N/A)
[S] Canada/Eastern: EDT == EDT
[W] Canada/Eastern: EST == EST
[S] Canada/Mountain: MDT == MDT
[W] Canada/Mountain: MST == MST
[S] Canada/Newfoundland: NDT == NDT
[W] Canada/Newfoundland: NST == NST
[S] Canada/Pacific: PDT == PDT
[W] Canada/Pacific: PST == PST
[S] Canada/Saskatchewan: CST == CST
[W] Canada/Saskatchewan: CST == CST
[S] Canada/Yukon: MDT != MST
[W] Canada/Yukon: MST == MST
[S] Chile/Continental: CLT == CLT
[W] Chile/Continental: CLT != CLST
[S] Chile/EasterIsland: EAST == EAST
[W] Chile/EasterIsland: EAST != EASST
[S] Cuba: CDT == CDT
[W] Cuba: CST == CST
[S] EET: EEST == EEST
[W] EET: EET == EET
[S] EST: EST (N/A)
[W] EST: EST (N/A)
[S] EST5EDT: EDT == EDT
[W] EST5EDT: EST == EST
[S] Egypt: EET == EET
[W] Egypt: EET == EET
[S] Eire: IST == IST
[W] Eire: GMT == GMT
[S] Etc/GMT: GMT == GMT
[W] Etc/GMT: GMT == GMT
[S] Etc/GMT+0: GMT == GMT
[W] Etc/GMT+0: GMT == GMT
[S] Etc/GMT+1: -01:00 != GMT-01:00
[W] Etc/GMT+1: -01:00 != GMT-01:00
[S] Etc/GMT+10: -10:00 != GMT-10:00
[W] Etc/GMT+10: -10:00 != GMT-10:00
[S] Etc/GMT+11: -11:00 != GMT-11:00
[W] Etc/GMT+11: -11:00 != GMT-11:00
[S] Etc/GMT+12: -12:00 != GMT-12:00
[W] Etc/GMT+12: -12:00 != GMT-12:00
[S] Etc/GMT+2: -02:00 != GMT-02:00
[W] Etc/GMT+2: -02:00 != GMT-02:00
[S] Etc/GMT+3: -03:00 != GMT-03:00
[W] Etc/GMT+3: -03:00 != GMT-03:00
[S] Etc/GMT+4: -04:00 != GMT-04:00
[W] Etc/GMT+4: -04:00 != GMT-04:00
[S] Etc/GMT+5: -05:00 != GMT-05:00
[W] Etc/GMT+5: -05:00 != GMT-05:00
[S] Etc/GMT+6: -06:00 != GMT-06:00
[W] Etc/GMT+6: -06:00 != GMT-06:00
[S] Etc/GMT+7: -07:00 != GMT-07:00
[W] Etc/GMT+7: -07:00 != GMT-07:00
[S] Etc/GMT+8: -08:00 != GMT-08:00
[W] Etc/GMT+8: -08:00 != GMT-08:00
[S] Etc/GMT+9: -09:00 != GMT-09:00
[W] Etc/GMT+9: -09:00 != GMT-09:00
[S] Etc/GMT-0: GMT == GMT
[W] Etc/GMT-0: GMT == GMT
[S] Etc/GMT-1: +01:00 != GMT+01:00
[W] Etc/GMT-1: +01:00 != GMT+01:00
[S] Etc/GMT-10: +10:00 != GMT+10:00
[W] Etc/GMT-10: +10:00 != GMT+10:00
[S] Etc/GMT-11: +11:00 != GMT+11:00
[W] Etc/GMT-11: +11:00 != GMT+11:00
[S] Etc/GMT-12: +12:00 != GMT+12:00
[W] Etc/GMT-12: +12:00 != GMT+12:00
[S] Etc/GMT-13: +13:00 != GMT+13:00
[W] Etc/GMT-13: +13:00 != GMT+13:00
[S] Etc/GMT-14: +14:00 != GMT+14:00
[W] Etc/GMT-14: +14:00 != GMT+14:00
[S] Etc/GMT-2: +02:00 != GMT+02:00
[W] Etc/GMT-2: +02:00 != GMT+02:00
[S] Etc/GMT-3: +03:00 != GMT+03:00
[W] Etc/GMT-3: +03:00 != GMT+03:00
[S] Etc/GMT-4: +04:00 != GMT+04:00
[W] Etc/GMT-4: +04:00 != GMT+04:00
[S] Etc/GMT-5: +05:00 != GMT+05:00
[W] Etc/GMT-5: +05:00 != GMT+05:00
[S] Etc/GMT-6: +06:00 != GMT+06:00
[W] Etc/GMT-6: +06:00 != GMT+06:00
[S] Etc/GMT-7: +07:00 != GMT+07:00
[W] Etc/GMT-7: +07:00 != GMT+07:00
[S] Etc/GMT-8: +08:00 != GMT+08:00
[W] Etc/GMT-8: +08:00 != GMT+08:00
[S] Etc/GMT-9: +09:00 != GMT+09:00
[W] Etc/GMT-9: +09:00 != GMT+09:00
[S] Etc/GMT0: GMT == GMT
[W] Etc/GMT0: GMT == GMT
[S] Etc/Greenwich: GMT == GMT
[W] Etc/Greenwich: GMT == GMT
[S] Etc/UCT: UTC == UTC
[W] Etc/UCT: UTC == UTC
[S] Etc/UTC: UTC == UTC
[W] Etc/UTC: UTC == UTC
[S] Etc/Universal: UTC == UTC
[W] Etc/Universal: UTC == UTC
[S] Etc/Zulu: UTC == UTC
[W] Etc/Zulu: UTC == UTC
[S] Europe/Amsterdam: CEST == CEST
[W] Europe/Amsterdam: CET == CET
[S] Europe/Andorra: CEST == CEST
[W] Europe/Andorra: CET == CET
[S] Europe/Athens: EEST == EEST
[W] Europe/Athens: EET == EET
[S] Europe/Belfast: BST == BST
[W] Europe/Belfast: GMT == GMT
[S] Europe/Belgrade: CEST == CEST
[W] Europe/Belgrade: CET == CET
[S] Europe/Berlin: CEST == CEST
[W] Europe/Berlin: CET == CET
[S] Europe/Bratislava: CEST == CEST
[W] Europe/Bratislava: CET == CET
[S] Europe/Brussels: CEST == CEST
[W] Europe/Brussels: CET == CET
[S] Europe/Bucharest: EEST == EEST
[W] Europe/Bucharest: EET == EET
[S] Europe/Budapest: CEST == CEST
[W] Europe/Budapest: CET == CET
[S] Europe/Busingen: CEST == CEST
[W] Europe/Busingen: CET == CET
[S] Europe/Chisinau: EEST == EEST
[W] Europe/Chisinau: EET == EET
[S] Europe/Copenhagen: CEST == CEST
[W] Europe/Copenhagen: CET == CET
[S] Europe/Dublin: IST == IST
[W] Europe/Dublin: GMT == GMT
[S] Europe/Gibraltar: CEST == CEST
[W] Europe/Gibraltar: CET == CET
[S] Europe/Guernsey: BST == BST
[W] Europe/Guernsey: GMT == GMT
[S] Europe/Helsinki: EEST == EEST
[W] Europe/Helsinki: EET == EET
[S] Europe/Isle_of_Man: BST == BST
[W] Europe/Isle_of_Man: GMT == GMT
[S] Europe/Istanbul: TRST != TRT
[W] Europe/Istanbul: TRT == TRT
[S] Europe/Jersey: BST == BST
[W] Europe/Jersey: GMT == GMT
[S] Europe/Kaliningrad: EET == EET
[W] Europe/Kaliningrad: EET == EET
[S] Europe/Kiev: EEST == EEST
[W] Europe/Kiev: EET == EET
[S] Europe/Lisbon: WEST == WEST
[W] Europe/Lisbon: WET == WET
[S] Europe/Ljubljana: CEST == CEST
[W] Europe/Ljubljana: CET == CET
[S] Europe/London: BST == BST
[W] Europe/London: GMT == GMT
[S] Europe/Luxembourg: CEST == CEST
[W] Europe/Luxembourg: CET == CET
[S] Europe/Madrid: CEST == CEST
[W] Europe/Madrid: CET == CET
[S] Europe/Malta: CEST == CEST
[W] Europe/Malta: CET == CET
[S] Europe/Mariehamn: EEST == EEST
[W] Europe/Mariehamn: EET == EET
[S] Europe/Minsk: MSK == MSK
[W] Europe/Minsk: MSK == MSK
[S] Europe/Monaco: CEST == CEST
[W] Europe/Monaco: CET == CET
[S] Europe/Moscow: MSK == MSK
[W] Europe/Moscow: MSK == MSK
[S] Europe/Nicosia: EEST == EEST
[W] Europe/Nicosia: EET == EET
[S] Europe/Oslo: CEST == CEST
[W] Europe/Oslo: CET == CET
[S] Europe/Paris: CEST == CEST
[W] Europe/Paris: CET == CET
[S] Europe/Podgorica: CEST == CEST
[W] Europe/Podgorica: CET == CET
[S] Europe/Prague: CEST == CEST
[W] Europe/Prague: CET == CET
[S] Europe/Riga: EEST == EEST
[W] Europe/Riga: EET == EET
[S] Europe/Rome: CEST == CEST
[W] Europe/Rome: CET == CET
[S] Europe/Samara: SAMT == SAMT
[W] Europe/Samara: SAMT == SAMT
[S] Europe/San_Marino: CEST == CEST
[W] Europe/San_Marino: CET == CET
[S] Europe/Sarajevo: CEST == CEST
[W] Europe/Sarajevo: CET == CET
[S] Europe/Simferopol: MSK == MSK
[W] Europe/Simferopol: MSK == MSK
[S] Europe/Skopje: CEST == CEST
[W] Europe/Skopje: CET == CET
[S] Europe/Sofia: EEST == EEST
[W] Europe/Sofia: EET == EET
[S] Europe/Stockholm: CEST == CEST
[W] Europe/Stockholm: CET == CET
[S] Europe/Tallinn: EEST == EEST
[W] Europe/Tallinn: EET == EET
[S] Europe/Tirane: CEST == CEST
[W] Europe/Tirane: CET == CET
[S] Europe/Tiraspol: EEST == EEST
[W] Europe/Tiraspol: EET == EET
[S] Europe/Uzhgorod: EEST == EEST
[W] Europe/Uzhgorod: EET == EET
[S] Europe/Vaduz: CEST == CEST
[W] Europe/Vaduz: CET == CET
[S] Europe/Vatican: CEST == CEST
[W] Europe/Vatican: CET == CET
[S] Europe/Vienna: CEST == CEST
[W] Europe/Vienna: CET == CET
[S] Europe/Vilnius: EEST == EEST
[W] Europe/Vilnius: EET == EET
[S] Europe/Volgograd: MSK == MSK
[W] Europe/Volgograd: MSK == MSK
[S] Europe/Warsaw: CEST == CEST
[W] Europe/Warsaw: CET == CET
[S] Europe/Zagreb: CEST == CEST
[W] Europe/Zagreb: CET == CET
[S] Europe/Zaporozhye: EEST == EEST
[W] Europe/Zaporozhye: EET == EET
[S] Europe/Zurich: CEST == CEST
[W] Europe/Zurich: CET == CET
[S] GB: BST == BST
[W] GB: GMT == GMT
[S] GB-Eire: BST == BST
[W] GB-Eire: GMT == GMT
[S] GMT: GMT == GMT
[W] GMT: GMT == GMT
[S] GMT+0: GMT == GMT
[W] GMT+0: GMT == GMT
[S] GMT-0: GMT == GMT
[W] GMT-0: GMT == GMT
[S] GMT0: GMT == GMT
[W] GMT0: GMT == GMT
[S] Greenwich: GMT == GMT
[W] Greenwich: GMT == GMT
[S] HST: HST (N/A)
[W] HST: HST (N/A)
[S] Hongkong: HKT == HKT
[W] Hongkong: HKT == HKT
[S] Iceland: GMT == GMT
[W] Iceland: GMT == GMT
[S] Indian/Antananarivo: EAT == EAT
[W] Indian/Antananarivo: EAT == EAT
[S] Indian/Chagos: IOT == IOT
[W] Indian/Chagos: IOT == IOT
[S] Indian/Christmas: CXT == CXT
[W] Indian/Christmas: CXT == CXT
[S] Indian/Cocos: CCT == CCT
[W] Indian/Cocos: CCT == CCT
[S] Indian/Comoro: EAT == EAT
[W] Indian/Comoro: EAT == EAT
[S] Indian/Kerguelen: TFT == TFT
[W] Indian/Kerguelen: TFT == TFT
[S] Indian/Mahe: SCT == SCT
[W] Indian/Mahe: SCT == SCT
[S] Indian/Maldives: MVT == MVT
[W] Indian/Maldives: MVT == MVT
[S] Indian/Mauritius: MUT == MUT
[W] Indian/Mauritius: MUT == MUT
[S] Indian/Mayotte: EAT == EAT
[W] Indian/Mayotte: EAT == EAT
[S] Indian/Reunion: RET == RET
[W] Indian/Reunion: RET == RET
[S] Iran: IRDT == IRDT
[W] Iran: IRST == IRST
[S] Israel: IDT == IDT
[W] Israel: IST == IST
[S] Jamaica: EST == EST
[W] Jamaica: EST == EST
[S] Japan: JST == JST
[W] Japan: JST == JST
[S] Kwajalein: MHT == MHT
[W] Kwajalein: MHT == MHT
[S] Libya: EET == EET
[W] Libya: EET == EET
[S] MET: MEST == MEST
[W] MET: MET == MET
[S] MST: MST (N/A)
[W] MST: MST (N/A)
[S] MST7MDT: MDT == MDT
[W] MST7MDT: MST == MST
[S] Mexico/BajaNorte: PDT == PDT
[W] Mexico/BajaNorte: PST == PST
[S] Mexico/BajaSur: MDT == MDT
[W] Mexico/BajaSur: MST == MST
[S] Mexico/General: CDT == CDT
[W] Mexico/General: CST == CST
[S] NZ: NZST == NZST
[W] NZ: NZDT == NZDT
[S] NZ-CHAT: CHAST == CHAST
[W] NZ-CHAT: CHADT == CHADT
[S] Navajo: MDT == MDT
[W] Navajo: MST == MST
[S] PRC: CST == CST
[W] PRC: CST == CST
[S] PST8PDT: PDT == PDT
[W] PST8PDT: PST == PST
[S] Pacific/Apia: WSST == WSST
[W] Pacific/Apia: WSDT == WSDT
[S] Pacific/Auckland: NZST == NZST
[W] Pacific/Auckland: NZDT == NZDT
[S] Pacific/Bougainville: BST == BST
[W] Pacific/Bougainville: BST == BST
[S] Pacific/Chatham: CHAST == CHAST
[W] Pacific/Chatham: CHADT == CHADT
[S] Pacific/Chuuk: CHUT == CHUT
[W] Pacific/Chuuk: CHUT == CHUT
[S] Pacific/Easter: EAST == EAST
[W] Pacific/Easter: EAST != EASST
[S] Pacific/Efate: VUT == VUT
[W] Pacific/Efate: VUT == VUT
[S] Pacific/Enderbury: PHOT == PHOT
[W] Pacific/Enderbury: PHOT == PHOT
[S] Pacific/Fakaofo: TKT == TKT
[W] Pacific/Fakaofo: TKT == TKT
[S] Pacific/Fiji: FJT == FJT
[W] Pacific/Fiji: FJST == FJST
[S] Pacific/Funafuti: TVT == TVT
[W] Pacific/Funafuti: TVT == TVT
[S] Pacific/Galapagos: GALT == GALT
[W] Pacific/Galapagos: GALT == GALT
[S] Pacific/Gambier: GAMT == GAMT
[W] Pacific/Gambier: GAMT == GAMT
[S] Pacific/Guadalcanal: SBT == SBT
[W] Pacific/Guadalcanal: SBT == SBT
[S] Pacific/Guam: ChST == ChST
[W] Pacific/Guam: ChST == ChST
[S] Pacific/Honolulu: HST == HST
[W] Pacific/Honolulu: HST == HST
[S] Pacific/Johnston: HST == HST
[W] Pacific/Johnston: HST == HST
[S] Pacific/Kiritimati: LINT == LINT
[W] Pacific/Kiritimati: LINT == LINT
[S] Pacific/Kosrae: KOST == KOST
[W] Pacific/Kosrae: KOST == KOST
[S] Pacific/Kwajalein: MHT == MHT
[W] Pacific/Kwajalein: MHT == MHT
[S] Pacific/Majuro: MHT == MHT
[W] Pacific/Majuro: MHT == MHT
[S] Pacific/Marquesas: MART == MART
[W] Pacific/Marquesas: MART == MART
[S] Pacific/Midway: SST == SST
[W] Pacific/Midway: SST == SST
[S] Pacific/Nauru: NRT == NRT
[W] Pacific/Nauru: NRT == NRT
[S] Pacific/Niue: NUT == NUT
[W] Pacific/Niue: NUT == NUT
[S] Pacific/Norfolk: NFT == NFT
[W] Pacific/Norfolk: NFT != NFST
[S] Pacific/Noumea: NCT == NCT
[W] Pacific/Noumea: NCT == NCT
[S] Pacific/Pago_Pago: SST == SST
[W] Pacific/Pago_Pago: SST == SST
[S] Pacific/Palau: PWT == PWT
[W] Pacific/Palau: PWT == PWT
[S] Pacific/Pitcairn: PST == PST
[W] Pacific/Pitcairn: PST == PST
[S] Pacific/Pohnpei: PONT == PONT
[W] Pacific/Pohnpei: PONT == PONT
[S] Pacific/Ponape: PONT == PONT
[W] Pacific/Ponape: PONT == PONT
[S] Pacific/Port_Moresby: PGT == PGT
[W] Pacific/Port_Moresby: PGT == PGT
[S] Pacific/Rarotonga: CKT == CKT
[W] Pacific/Rarotonga: CKT == CKT
[S] Pacific/Saipan: ChST == ChST
[W] Pacific/Saipan: ChST == ChST
[S] Pacific/Samoa: SST == SST
[W] Pacific/Samoa: SST == SST
[S] Pacific/Tahiti: TAHT == TAHT
[W] Pacific/Tahiti: TAHT == TAHT
[S] Pacific/Tarawa: GILT == GILT
[W] Pacific/Tarawa: GILT == GILT
[S] Pacific/Tongatapu: TOT == TOT
[W] Pacific/Tongatapu: TOT == TOT
[S] Pacific/Truk: CHUT == CHUT
[W] Pacific/Truk: CHUT == CHUT
[S] Pacific/Wake: WAKT == WAKT
[W] Pacific/Wake: WAKT == WAKT
[S] Pacific/Wallis: WFT == WFT
[W] Pacific/Wallis: WFT == WFT
[S] Pacific/Yap: CHUT == CHUT
[W] Pacific/Yap: CHUT == CHUT
[S] Poland: CEST == CEST
[W] Poland: CET == CET
[S] Portugal: WEST == WEST
[W] Portugal: WET == WET
[S] ROC: CST (N/A)
[W] ROC: CST (N/A)
[S] ROK: KST == KST
[W] ROK: KST == KST
[S] Singapore: SGT == SGT
[W] Singapore: SGT == SGT
[S] Turkey: TRST != TRT
[W] Turkey: TRT == TRT
[S] UCT: UTC == UTC
[W] UCT: UTC == UTC
[S] US/Alaska: AKDT == AKDT
[W] US/Alaska: AKST == AKST
[S] US/Aleutian: HDT == HDT
[W] US/Aleutian: HST == HST
[S] US/Arizona: MST == MST
[W] US/Arizona: MST == MST
[S] US/Central: CDT == CDT
[W] US/Central: CST == CST
[S] US/East-Indiana: EDT == EDT
[W] US/East-Indiana: EST == EST
[S] US/Eastern: EDT == EDT
[W] US/Eastern: EST == EST
[S] US/Hawaii: HST == HST
[W] US/Hawaii: HST == HST
[S] US/Indiana-Starke: CDT == CDT
[W] US/Indiana-Starke: CST == CST
[S] US/Michigan: EDT == EDT
[W] US/Michigan: EST == EST
[S] US/Mountain: MDT == MDT
[W] US/Mountain: MST == MST
[S] US/Pacific: PDT == PDT
[W] US/Pacific: PST == PST
[S] US/Pacific-New: PDT == PDT
[W] US/Pacific-New: PST == PST
[S] US/Samoa: SST == SST
[W] US/Samoa: SST == SST
[S] UTC: UTC == UTC
[W] UTC: UTC == UTC
[S] Universal: UTC == UTC
[W] Universal: UTC == UTC
[S] W-SU: MSK == MSK
[W] W-SU: MSK == MSK
[S] WET: WEST == WEST
[W] WET: WET == WET
[S] Zulu: UTC == UTC
[W] Zulu: UTC == UTC

From short names:

+01:00: +01:00: +01:00: +01:00
+02:00: +02:00: +02:00: +02:00
+03:00: +03:00: +03:00: +03:00
+04:00: +04:00: +04:00: +04:00
+05:00: +05:00: +05:00: +05:00
+06:00: +06:00: +06:00: +06:00
+07:00: +07:00: +07:00: +07:00
+08:00: +08:00: +08:00: +08:00
+09:00: +09:00: +09:00: +09:00
+10:00: +10:00: +10:00: +10:00
+11:00: +11:00: +11:00: +11:00
+12:00: +12:00: +12:00: +12:00
+13:00: +13:00: +13:00: +13:00
+14:00: +14:00: +14:00: +14:00
-01:00: -01:00: -01:00: -01:00
-02:00: -02:00: -02:00: -02:00
-03:00: -03:00: -03:00: -03:00
-04:00: -04:00: -04:00: -04:00
-05:00: -05:00: -05:00: -05:00
-06:00: -06:00: -06:00: -06:00
-07:00: -07:00: -07:00: -07:00
-08:00: -08:00: -08:00: -08:00
-09:00: -09:00: -09:00: -09:00
-10:00: -10:00: -10:00: -10:00
-11:00: -11:00: -11:00: -11:00
-12:00: -12:00: -12:00: -12:00
ACDT: (error): (error): (error)
ACST: (error): (error): (error)
ACT: (error): (error): (error)
ACWST: (error): (error): (error)
ADT: (error): (error): -03:00
AEDT: (error): (error): (error)
AEST: (error): (error): (error)
AFT: (error): (error): (error)
AKDT: (error): (error): -08:00
AKST: (error): (error): -09:00
ALMT: (error): (error): (error)
AMST: (error): (error): (error)
AMT: (error): (error): (error)
ANAT: (error): (error): (error)
AQTT: (error): (error): (error)
ART: (error): (error): -03:00
AST: (error): (error): -04:00
AWST: (error): (error): (error)
AZOST: (error): (error): (error)
AZOT: (error): (error): (error)
AZST: (error): (error): (error)
AZT: (error): (error): (error)
BDT: (error): (error): (error)
BNT: (error): (error): (error)
BOT: (error): (error): (error)
BRST: (error): (error): -02:00
BRT: (error): (error): -03:00
BST: (error): (error): +01:00
BTT: (error): (error): (error)
CAST: (error): (error): (error)
CAT: (error): (error): -10:00
CCT: (error): (error): +08:00
CDT: (error): -06:00: -06:00
CEST: (error): (error): +02:00
CET: CET: CET: CET
CHADT: (error): (error): (error)
CHAST: (error): (error): (error)
CHOST: (error): (error): (error)
CHOT: (error): (error): (error)
CHUT: (error): (error): (error)
CKT: (error): (error): (error)
CLT: (error): (error): -04:00
COT: (error): (error): (error)
CST: (error): -06:00: -06:00
CVT: (error): (error): (error)
CXT: (error): (error): (error)
ChST: (error): (error): (error)
DAVT: (error): (error): (error)
DDUT: (error): (error): (error)
EAST: (error): (error): +10:00
EAT: (error): (error): +03:00
ECT: (error): (error): (error)
EDT: (error): -05:00: -05:00
EEST: (error): (error): +03:00
EET: EET: EET: EET
EGST: (error): (error): (error)
EGT: (error): (error): (error)
EST: EST: -05:00: -05:00
FJST: (error): (error): (error)
FJT: (error): (error): (error)
FKT: (error): (error): (error)
FNT: (error): (error): (error)
GALT: (error): (error): (error)
GAMT: (error): (error): (error)
GET: (error): (error): (error)
GFT: (error): (error): (error)
GILT: (error): (error): (error)
GMT: Etc/GMT: UTC: UTC
GST: (error): (error): +10:00
GYT: (error): (error): (error)
HDT: (error): (error): -09:00
HKT: (error): (error): (error)
HOVST: (error): (error): (error)
HOVT: (error): (error): (error)
HST: HST: HST: HST
ICT: (error): (error): (error)
IDT: (error): (error): (error)
IOT: (error): (error): (error)
IRDT: (error): (error): (error)
IRKT: (error): (error): (error)
IRST: (error): (error): (error)
IST: (error): (error): +05:30
JST: (error): (error): +09:00
KGT: (error): (error): (error)
KOST: (error): (error): (error)
KRAT: (error): (error): (error)
KST: (error): (error): +09:00
LHDT: (error): (error): (error)
LHST: (error): (error): (error)
LINT: (error): (error): (error)
MAGT: (error): (error): (error)
MART: (error): (error): (error)
MAWT: (error): (error): (error)
MDT: (error): -07:00: -07:00
MEST: (error): (error): +02:00
MET: MET: MET: MET
MHT: (error): (error): (error)
MIST: (error): (error): (error)
MMT: (error): (error): (error)
MSK: (error): (error): +03:00
MST: MST: -07:00: -07:00
MUT: (error): (error): (error)
MVT: (error): (error): (error)
MYT: (error): (error): (error)
NCT: (error): (error): (error)
NDT: (error): (error): -02:30
NFT: (error): (error): (error)
NOVT: (error): (error): (error)
NPT: (error): (error): (error)
NRT: (error): (error): (error)
NST: (error): (error): -03:30
NUT: (error): (error): (error)
NZDT: (error): (error): +13:00
NZST: (error): (error): +12:00
OMST: (error): (error): (error)
ORAT: (error): (error): (error)
PDT: (error): -08:00: -08:00
PET: (error): (error): (error)
PETT: (error): (error): (error)
PGT: (error): (error): (error)
PHOT: (error): (error): (error)
PKT: (error): (error): (error)
PMDT: (error): (error): (error)
PMST: (error): (error): (error)
PONT: (error): (error): (error)
PST: (error): -08:00: -08:00
PWT: (error): (error): (error)
PYST: (error): (error): (error)
PYT: (error): (error): (error)
QYZT: (error): (error): (error)
RET: (error): (error): (error)
ROTT: (error): (error): (error)
SAKT: (error): (error): (error)
SAMT: (error): (error): (error)
SAST: (error): (error): +02:00
SBT: (error): (error): (error)
SCT: (error): (error): (error)
SGT: (error): (error): +08:00
SRET: (error): (error): (error)
SRT: (error): (error): (error)
SST: (error): (error): +02:00
SYOT: (error): (error): (error)
TAHT: (error): (error): (error)
TFT: (error): (error): (error)
TJT: (error): (error): (error)
TKT: (error): (error): (error)
TLT: (error): (error): (error)
TMT: (error): (error): (error)
TOT: (error): (error): (error)
TRST: (error): (error): (error)
TRT: (error): (error): (error)
TVT: (error): (error): (error)
ULAST: (error): (error): (error)
ULAT: (error): (error): (error)
UTC: UTC: UTC: UTC
UYT: (error): (error): (error)
UZT: (error): (error): (error)
VET: (error): (error): (error)
VLAT: (error): (error): (error)
VOST: (error): (error): (error)
VUT: (error): (error): (error)
WAKT: (error): (error): (error)
WAT: (error): (error): +01:00
WEST: (error): (error): +01:00
WET: WET: WET: WET
WFT: (error): (error): (error)
WGST: (error): (error): (error)
WGT: (error): (error): (error)
WIB: (error): (error): (error)
WIT: (error): (error): (error)
WITA: (error): (error): (error)
WSDT: (error): (error): (error)
WSST: (error): (error): (error)
XJT: (error): (error): (error)
YAKT: (error): (error): (error)
YEKT: (error): (error): (error)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment