|
| 1 | +// |
| 2 | +// CalendarEventTimeZones.m |
| 3 | +// iOSCalendarEventParser |
| 4 | +// |
| 5 | +// Created by Rajeev Kumar Kallempudi on 2/3/16. |
| 6 | +// Copyright © 2016 rajeevprasanna. All rights reserved. |
| 7 | +// |
| 8 | + |
| 9 | +#import "CalendarEventTimeZones.h" |
| 10 | + |
| 11 | +@implementation CalendarEventTimeZones |
| 12 | + |
| 13 | ++(NSTimeZone *)getTimezoneById:(NSString *)timezoneId |
| 14 | +{ |
| 15 | + static NSDictionary *timeZoneMap = nil; |
| 16 | + static dispatch_once_t onceToken; |
| 17 | + dispatch_once(&onceToken, ^{ |
| 18 | + timeZoneMap = @{ |
| 19 | + @"Pacific Standard Time" : @"America/Los_Angeles", |
| 20 | + @"Chennai, Kolkata, Mumbai, New Delhi" : @"Asia/Kolkata", |
| 21 | + @"International Date Line West" : @"Pacific/Midway", |
| 22 | + @"Midway Island" : @"Pacific/Midway", |
| 23 | + @"American Samoa" : @"Pacific/Pago_Pago", |
| 24 | + @"Hawaii" : @"Pacific/Honolulu", |
| 25 | + @"Alaska" : @"America/Juneau", |
| 26 | + @"Pacific Time (US & Canada)" : @"America/Los_Angeles", |
| 27 | + @"Tijuana" : @"America/Tijuana", |
| 28 | + @"Mountain Time (US & Canada)" : @"America/Denver", |
| 29 | + @"Arizona" : @"America/Phoenix", |
| 30 | + @"Chihuahua" : @"America/Chihuahua", |
| 31 | + @"Mazatlan" : @"America/Mazatlan", |
| 32 | + @"Central Time (US & Canada)" : @"America/Chicago", |
| 33 | + @"Saskatchewan" : @"America/Regina", |
| 34 | + @"Guadalajara" : @"America/Mexico_City", |
| 35 | + @"Mexico City" : @"America/Mexico_City", |
| 36 | + @"Monterrey" : @"America/Monterrey", |
| 37 | + @"Central America" : @"America/Guatemala", |
| 38 | + @"Eastern Time (US & Canada)" : @"America/New_York", |
| 39 | + @"Indiana (East)" : @"America/Indiana/Indianapolis", |
| 40 | + @"Bogota" : @"America/Bogota", |
| 41 | + @"Lima" : @"America/Lima", |
| 42 | + @"Quito" : @"America/Lima", |
| 43 | + @"Atlantic Time (Canada)" : @"America/Halifax", |
| 44 | + @"Caracas" : @"America/Caracas", |
| 45 | + @"La Paz" : @"America/La_Paz", |
| 46 | + @"Santiago" : @"America/Santiago", |
| 47 | + @"Newfoundland" : @"America/St_Johns", |
| 48 | + @"Brasilia" : @"America/Sao_Paulo", |
| 49 | + @"Buenos Aires" : @"America/Argentina/Buenos_Aires", |
| 50 | + @"Georgetown" : @"America/Guyana", |
| 51 | + @"Greenland" : @"America/Godthab", |
| 52 | + @"Mid-Atlantic" : @"Atlantic/South_Georgia", |
| 53 | + @"Azores" : @"Atlantic/Azores", |
| 54 | + @"Cape Verde Is." : @"Atlantic/Cape_Verde", |
| 55 | + @"Dublin" : @"Europe/Dublin", |
| 56 | + @"Edinburgh" : @"Europe/London", |
| 57 | + @"Lisbon" : @"Europe/Lisbon", |
| 58 | + @"London" : @"Europe/London", |
| 59 | + @"Casablanca" : @"Africa/Casablanca", |
| 60 | + @"Monrovia" : @"Africa/Monrovia", |
| 61 | + @"UTC" : @"Etc/UTC", |
| 62 | + @"Belgrade" : @"Europe/Belgrade", |
| 63 | + @"Bratislava" : @"Europe/Bratislava", |
| 64 | + @"Budapest" : @"Europe/Budapest", |
| 65 | + @"Ljubljana" : @"Europe/Ljubljana", |
| 66 | + @"Prague" : @"Europe/Prague", |
| 67 | + @"Sarajevo" : @"Europe/Sarajevo", |
| 68 | + @"Skopje" : @"Europe/Skopje", |
| 69 | + @"Warsaw" : @"Europe/Warsaw", |
| 70 | + @"Zagreb" : @"Europe/Zagreb", |
| 71 | + @"Brussels" : @"Europe/Brussels", |
| 72 | + @"Copenhagen" : @"Europe/Copenhagen", |
| 73 | + @"Madrid" : @"Europe/Madrid", |
| 74 | + @"Paris" : @"Europe/Paris", |
| 75 | + @"Amsterdam" : @"Europe/Amsterdam", |
| 76 | + @"Berlin" : @"Europe/Berlin", |
| 77 | + @"Bern" : @"Europe/Berlin", |
| 78 | + @"Rome" : @"Europe/Rome", |
| 79 | + @"Stockholm" : @"Europe/Stockholm", |
| 80 | + @"Vienna" : @"Europe/Vienna", |
| 81 | + @"West Central Africa" : @"Africa/Algiers", |
| 82 | + @"Bucharest" : @"Europe/Bucharest", |
| 83 | + @"Cairo" : @"Africa/Cairo", |
| 84 | + @"Helsinki" : @"Europe/Helsinki", |
| 85 | + @"Kyiv" : @"Europe/Kiev", |
| 86 | + @"Riga" : @"Europe/Riga", |
| 87 | + @"Sofia" : @"Europe/Sofia", |
| 88 | + @"Tallinn" : @"Europe/Tallinn", |
| 89 | + @"Vilnius" : @"Europe/Vilnius", |
| 90 | + @"Athens" : @"Europe/Athens", |
| 91 | + @"Istanbul" : @"Europe/Istanbul", |
| 92 | + @"Minsk" : @"Europe/Minsk", |
| 93 | + @"Jerusalem" : @"Asia/Jerusalem", |
| 94 | + @"Harare" : @"Africa/Harare", |
| 95 | + @"Pretoria" : @"Africa/Johannesburg", |
| 96 | + @"Moscow" : @"Europe/Moscow", |
| 97 | + @"St. Petersburg" : @"Europe/Moscow", |
| 98 | + @"Volgograd" : @"Europe/Moscow", |
| 99 | + @"Kuwait" : @"Asia/Kuwait", |
| 100 | + @"Riyadh" : @"Asia/Riyadh", |
| 101 | + @"Nairobi" : @"Africa/Nairobi", |
| 102 | + @"Baghdad" : @"Asia/Baghdad", |
| 103 | + @"Tehran" : @"Asia/Tehran", |
| 104 | + @"Abu Dhabi" : @"Asia/Muscat", |
| 105 | + @"Muscat" : @"Asia/Muscat", |
| 106 | + @"Baku" : @"Asia/Baku", |
| 107 | + @"Tbilisi" : @"Asia/Tbilisi", |
| 108 | + @"Yerevan" : @"Asia/Yerevan", |
| 109 | + @"Kabul" : @"Asia/Kabul", |
| 110 | + @"Ekaterinburg" : @"Asia/Yekaterinburg", |
| 111 | + @"Islamabad" : @"Asia/Karachi", |
| 112 | + @"Karachi" : @"Asia/Karachi", |
| 113 | + @"Tashkent" : @"Asia/Tashkent", |
| 114 | + @"Chennai" : @"Asia/Kolkata", |
| 115 | + @"Kolkata" : @"Asia/Kolkata", |
| 116 | + @"Mumbai" : @"Asia/Kolkata", |
| 117 | + @"New Delhi" : @"Asia/Kolkata", |
| 118 | + @"Kathmandu" : @"Asia/Kathmandu", |
| 119 | + @"Astana" : @"Asia/Dhaka", |
| 120 | + @"Dhaka" : @"Asia/Dhaka", |
| 121 | + @"Sri Jayawardenepura" : @"Asia/Colombo", |
| 122 | + @"Almaty" : @"Asia/Almaty", |
| 123 | + @"Novosibirsk" : @"Asia/Novosibirsk", |
| 124 | + @"Rangoon" : @"Asia/Rangoon", |
| 125 | + @"Bangkok" : @"Asia/Bangkok", |
| 126 | + @"Hanoi" : @"Asia/Bangkok", |
| 127 | + @"Jakarta" : @"Asia/Jakarta", |
| 128 | + @"Krasnoyarsk" : @"Asia/Krasnoyarsk", |
| 129 | + @"Beijing" : @"Asia/Shanghai", |
| 130 | + @"Chongqing" : @"Asia/Chongqing", |
| 131 | + @"Hong Kong" : @"Asia/Hong_Kong", |
| 132 | + @"Urumqi" : @"Asia/Urumqi", |
| 133 | + @"Kuala Lumpur" : @"Asia/Kuala_Lumpur", |
| 134 | + @"Singapore" : @"Asia/Singapore", |
| 135 | + @"Taipei" : @"Asia/Taipei", |
| 136 | + @"Perth" : @"Australia/Perth", |
| 137 | + @"Irkutsk" : @"Asia/Irkutsk", |
| 138 | + @"Ulaan Bataar" : @"Asia/Ulaanbaatar", |
| 139 | + @"Seoul" : @"Asia/Seoul", |
| 140 | + @"Osaka" : @"Asia/Tokyo", |
| 141 | + @"Sapporo" : @"Asia/Tokyo", |
| 142 | + @"Tokyo" : @"Asia/Tokyo", |
| 143 | + @"Yakutsk" : @"Asia/Yakutsk", |
| 144 | + @"Darwin" : @"Australia/Darwin", |
| 145 | + @"Adelaide" : @"Australia/Adelaide", |
| 146 | + @"Canberra" : @"Australia/Melbourne", |
| 147 | + @"Melbourne" : @"Australia/Melbourne", |
| 148 | + @"Sydney" : @"Australia/Sydney", |
| 149 | + @"Brisbane" : @"Australia/Brisbane", |
| 150 | + @"Hobart" : @"Australia/Hobart", |
| 151 | + @"Vladivostok" : @"Asia/Vladivostok", |
| 152 | + @"Guam" : @"Pacific/Guam", |
| 153 | + @"Port Moresby" : @"Pacific/Port_Moresby", |
| 154 | + @"Magadan" : @"Asia/Magadan", |
| 155 | + @"Solomon Is." : @"Asia/Magadan", |
| 156 | + @"New Caledonia" : @"Pacific/Noumea", |
| 157 | + @"Fiji" : @"Pacific/Fiji", |
| 158 | + @"Kamchatka" : @"Asia/Kamchatka", |
| 159 | + @"Marshall Is." : @"Pacific/Majuro", |
| 160 | + @"Auckland" : @"Pacific/Auckland", |
| 161 | + @"Wellington" : @"Pacific/Auckland", |
| 162 | + @"Nuku'alofa" : @"Pacific/Tongatapu", |
| 163 | + @"Tokelau Is." : @"Pacific/Fakaofo", |
| 164 | + @"Samoa" : @"Pacific/Apia" |
| 165 | + }; |
| 166 | + }); |
| 167 | + |
| 168 | + NSString *timezoneName = [timeZoneMap valueForKey:timezoneId]; |
| 169 | + return timezoneName.length != 0 ? [NSTimeZone timeZoneWithName:timezoneName] : nil; |
| 170 | +} |
| 171 | + |
| 172 | +@end |
0 commit comments