Получение правильного значения NSDate - это самый эффективный метод? - PullRequest
1 голос
/ 30 декабря 2011

У меня есть этот код, чтобы получить местную дату / время.Это работает, но мне кажется, что нужно пройти долгий путь (10 операторов), чтобы получить мое текущее значение даты / времени, а не время по Гринвичу.

NSDate          *currentDateGMT = [NSDate date];
NSDateFormatter *currentDateDateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone      *currentDateTimeZoneGMT = [NSTimeZone timeZoneWithName:@"GMT"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

[currentDateDateFormatter setTimeZone: currentDateTimeZoneGMT];
[currentDateDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[currentDateDateFormatter setLocale:locale];

NSString *currentDateString = [currentDateDateFormatter stringFromDate:currentDateGMT];
NSDate *currentDateAdjusted = [currentDateDateFormatter dateFromString:currentDateString]; 

[currentDateDateFormatter release];

Может ли кто-нибудь подтвердить, что это лучший способ получить текущее значение машины?

Спасибо

1 Ответ

1 голос
/ 30 декабря 2011

NSDateFormatter будет по умолчанию для часового пояса пользователя, поэтому самое простое решение -

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//lower case h for hour will also default to the users
//12/24 hour clock preference
[formatter setDateFormat:@"yyyy-MM-dd hh:mm"];

NSString *currentDate = [formatter stringFromDate:[NSDate date]];

[formatter release];
...