Вопрос по iphone, mysql, timezone – Как перевести время в часовой пояс устройства iPhone?

20

У меня есть время в часовом поясе EST, это делается с помощью функции NOW () на сервере MySQL. Поскольку мой сервер находится в EST, сохраненное время находится в EST. Когда я получаю его из своего приложения на iPhone, мне нужно отобразить его в правильном часовом поясе пользователя. Как я могу это сделать?

Ваш Ответ

2   ответа
3

+ (NSDate *) convertDate:(NSDate *) date toTimeZone:(NSString *) timeZoneAbbreviation {

    NSTimeZone *systemZone  = [NSTimeZone systemTimeZone];
    NSTimeZone *zoneUTC     = [NSTimeZone timeZoneWithAbbreviation:timeZoneAbbreviation];
    NSTimeInterval s        = [zoneUTC secondsFromGMT];

    NSTimeZone *myZone      = [NSTimeZone timeZoneWithAbbreviation:[systemZone abbreviationForDate:date]];
    NSTimeInterval p        = [myZone secondsFromGMT];

    NSTimeInterval i = s-p;
    NSDate *d = [NSDate dateWithTimeInterval:i sinceDate:date];

    return d;

}


//Test case **note** cgUtil is the class this method is written thus change it accordingly

__block NSDate *now = [NSDate date];
NSLog(@"Current time:%@", now);
[[[NSTimeZone abbreviationDictionary] allKeys] enumerateObjectsUsingBlock:^(NSString * abb, NSUInteger idx, BOOL *stop) {
    NSLog(@"Time zone abb:%@:Time:%@",abb,[cgUtil convertDate:now toTimeZone:abb]);
}];
3

Похожие вопросы