iPhone SDK - Получить дату от NSFileCreationDate - PullRequest
0 голосов
/ 09 сентября 2011

Я получаю дату и время создания файла, используя attributesOfItemAtPath:.Я получаю NSString как результат, который отображает Date Created: 2011-08-23 10:47:33 +0000.Но как я могу получить информацию о дате только из NSString, игнорируя информацию о времени.т.е. мой результат должен быть как Date Created: 2011-08-23.

Ответы [ 2 ]

3 голосов
/ 09 сентября 2011

Разве атрибутыOfItemAtPath: не возвращают NSDate?Это то, что говорят документы.Чтобы получить строку только с датой из NSDate, используйте NSDateFormatter.Код может выглядеть примерно так:

NSDictionary* attributesDictionary = [[NSFileManager defaultManager] attributesOfItemAtPath: path error: NULL];
NSDate* date = [attributesDictionary objectForKey: NSFileCreationDate];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];

NSString* justDateString = [dateFormatter stringFromDate: date];
[dateFormatter release];
1 голос
/ 09 сентября 2011

Вы действительно получаете NSDate не строку:

NSString *filePathName = [directory stringByAppendingPathComponent:fileName];
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePathName error:&error];

// No attributes then jst skip the file
if (!attributes || error) {
   NSLog(@"Error getting attributes for: %@\nWith error: %@", filePathName, error);
   retun;
}

NSDate *modifiedDate = [attributes objectForKey:NSFileModificationDate];

С NSDateFormatter вы получаете строку с этой даты:

NSDateFormatter *formatter = [[NSDateFormatter alloc] 
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *datestring = [formatter stringFromDate:modifiedDate];
[formatter release], formatter = nil;
...