Конвертировать строку даты в NSDate в объекте c/iOS
У меня есть эта строка ---- > Sun, 16 Dec 2012 15:30:22 +0000
Я хочу преобразовать его в NSDate. Я пробовал код ниже, но он дает мне null
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *date = [[NSDate alloc] init];
date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"];
NSLog(@"date: %@", date);
У меня проблема не возникает?
Любое руководство plz
Ответы
Ответ 1
dateFormat
форматирования должен соответствовать формату строки, которую вы предоставляете.
Поэтому что-то подобное должно работать
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss ZZZ";
NSLog(@"%@", [formatter dateFromString:@"Fri, 18 Jan 2013 15:30:22 +0000"]);
Чтобы найти то, что спецификаторы на самом деле означают проверку Unicode Technical Standard # 35
Ответ 2
Попробуйте этот код
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE, dd MMM yyyy"];
NSDate *date = [[NSDate alloc] init];
date = [df dateFromString: @"Sun, 16 Dec 2012"];
NSLog(@"date: %@", date);
Надеюсь, это поможет вам.
ИЗМЕНИТЬ: -
Для вашей строки
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE, dd MMM yyyy HH:mm:ss z"];
NSDate *date = [[NSDate alloc] init];
date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"];
NSLog(@"date: %@", date);
Ответ 3
Попробуйте это, чтобы получить NSDate из String
- (NSDate*) dateFromString:(NSString*)aStr
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
//[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss a"];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSLog(@"%@", aStr);
NSDate *aDate = [dateFormatter dateFromString:aStr];
[dateFormatter release];
return aDate;
}
Это отлично работает для меня.