Вопрос по iphone – NSDate из NSString - dateFromString возвращает ноль

0

Я хочу получить объект NSDate из строки даты, но он возвращает ноль. Что я делаю неправильно? Спасибо!

NSString *dateString = @"2012-04-05T13:27:32.369Z";

NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss.SSSZ"];
NSDate* date = [df dateFromString:dateString];
NSLog(@"1%@",date);
[df release];
Поместите Z в одинарные кавычки. Hot Licks
Я согласен с Адхирой. Nilesh

Ваш Ответ

3   ответа
1

yyyy годами

[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
& Quot; гггг-ММ-дд & APOS; Т & APOS; HH: MM: ss.SSSZ & Quot; все еще возвращает ноль.
4

«Z» должны быть указаны:

NSDateFormatter* df = [[NSDateFormatter alloc]init];
NSString *dateString = @"2012-04-05T13:27:32..SSS'Z'"];
NSDate* date = [df dateFromString:dateString];
NSLog(@"1: %@",date);

NSString *newDateString = [df stringFromDate:date];
NSLog(@"2: %@",newDateString);

Вывод NSLog:

1: 2012-04-05 17:27:32 +0000
2: 2012-04-05T13:27:32.369

Имейте в виду, чтоNSLog используетNSDate форматтер по умолчанию с текущим часовым поясом.

Увидеть:Date_Field_Symbol_Table

0

чтобы получить NSDate, затем используйте - (NSTimeInterval) timeIntervalSince1970, чтобы получить секунды с 1970 года.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *date = [formatter dateFromString:@"2012-04-05T13:27:32.369Z"];
NSLog(@"Date: %@", date);
NSLog(@"1970: %f", [date timeIntervalSince1970]);
NSLog(@"sDate: %@", [formatter stringFromDate:date]);
[formatter release];

Надеюсь, поможет.

Похожие вопросы