У меня есть две переменные:
NSTimeZone *timeZoneMinus5 = [NSTimeZone timeZoneForSecondsFromGMT: -18000];
NSTimeZone *timeZoneEST = [NSTimeZone timeZoneWithName:@"EST"];
Проверено на устройстве и на симуляторе, и оба возвращают GMT-05:00
.
Пока я пишу это время 2:55 am (GMT)
. Я нахожусь в часовом поясе EST, поэтому мое время составляет 10:55pm (GMT-05:00)
, с учетом перехода на летнее время 15 апреля 2011 года.
Однако [timeZoneEST isDaylightSavingTime]
возвращает NO
, а [timeZoneEST daylightSavingTimeOffset]
возвращает 0
.
Если я использую timeZoneEST
, чтобы получить текущее время в виде строки:
NSDate *gmtTime = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"h:mm a (z)"];
[dateFormatter setTimeZone: timeZoneEST];
NSString *timeStr = [dateFormatter stringFromDate: gmtTime];
и симулятор и устройство дают мне 9:55 PM (GMT-05:00)
.
В моем понимании я должен получить 10:55 PM (GMT-05:00)
. Я не прав или я делаю это неправильно?