Атрибут файла NSFileModificationDate возвращает время через 5 часов после ожидаемого времени в приложении iPad - PullRequest
0 голосов
/ 27 января 2011

Здравствуйте! Я использую следующий метод NSFileManager в приложении для iPad:

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error

, чтобы получить атрибуты файла, затем используйте ключ NSFileModificationDate, чтобы получить дату / время последнего изменения файла. Однако дата / время, которое он мне возвращает, на 5 часов опережает дату, когда я действительно сохраняю файл, который я и вижу внутри моего «Finder» при просмотре свойств файла.

Я знаю, что обходной путь / хак - это выбить 5 часов из времени, когда я вернусь, но я хотел бы знать, почему это происходит. Кто-нибудь знает? Спасибо.

Ответы [ 2 ]

5 голосов
/ 27 января 2011

Помните, что временные метки файлов * UTC, , всегда , и Finder компенсирует любой часовой пояс, в котором вы находитесь в данный момент при отображении, поэтому вы должны сделать то же самое.

0 голосов
/ 27 января 2011

Это на устройстве или в симуляторе? Я предполагаю последнее, так как вы обращаетесь к Finder в своем вопросе. В симуляторе NSDate, который я получаю из приведенного ниже примера, не дает мне часовой пояс. Поведение на устройстве может быть другим; попробуй.

NSError * err;
NSFileManager * myManager = [NSFileManager defaultManager];
NSString * myPath = [[NSBundle mainBundle] bundlePath];
NSDictionary * myDict = [myManager attributesOfItemAtPath:myPath error:&err];
NSDate * myDate = [myDict objectForKey:@"NSFileModificationDate"];
NSLog(@"%@", myDate);


2011-01-26 21:32:29.985 scraptime2[11488:207] 2011-01-27 03:32:27 +0000

(я бы оставил комментарий, но мне пока не хватает представителя)

...