Путаница в отношении [дата NSD] - PullRequest
1 голос
/ 04 января 2012

[NSDate date] возвращает GMT на симуляторе ... во сколько он возвращается на устройстве ...? А также, как я могу получить время симулятора программно?

Ответы [ 2 ]

6 голосов
/ 04 января 2012

Возвращает текущую дату и время. NSDate не зависит от часового пояса. -description NSDate может быть в GMT, но это не гарантировано.

Представление не гарантируется постоянным в разных выпусках операционной системы. Для форматирования даты вы должны использовать вместо этого объект форматирования даты.

Если вы хотите отобразить или проанализировать дату в другом часовом поясе, используйте NSDateFormatter (и измените его свойство часового пояса / локали) или используйте -descriptionWithLocale:.

NSLocale* currentLocale = [NSLocale currentLocale]
NSLog(@"current locale = %@", [currentLocale localeIdentifier]);
NSLog(@"date = %@", [[NSDate date] descriptionWithLocale:currentLocale];
1 голос
/ 04 января 2012

NSDate не зависит от часового пояса. Когда вы получаете описание с помощью description, оно отображает часовой пояс, но он полностью «информационный», и, насколько мне известно, нет способа установить или получить доступ к информации о часовом поясе (кроме description). Значением, хранящимся в объекте NSDate, является (должно быть) время по Гринвичу / время по Гринвичу (хотя, разумеется, оно не может определить, правильно ли вы указали время).

Чтобы получить представление симулятора о текущем времени и дате, используйте [NSDate date]. Отформатируйте его (если необходимо) с помощью NSDateFormatter.

...