Проблема с разбором NSString в NSDate - PullRequest
1 голос
/ 05 апреля 2011

У меня есть XML с этим значением:

<LastModifiedOnDate>2011-04-02T00:00:00</LastModifiedOnDate>

Я пытаюсь разобрать это на iPhone с NSString до NSDate, но безуспешно.

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease];  
        [formate setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"];  
        //NSString *strConcat = @"2010-09-24 17:30:00";  
        NSDate *date = [formate dateFromString:string];

Ответы [ 3 ]

4 голосов
/ 05 апреля 2011

Вам не нужны все эти апострофы в строке формата. Единственное, что вам нужно, это около T.

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease];  
[formate setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
// I recommend setting a timezone because it will use the system timezone and that
// can cause confusion with your data.  
// [formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSString *strConcat = @"2010-09-24T17:30:00";  
NSDate *date = [formate dateFromString:strConcat];
NSLog(@"Date: %@", date);  // remember NSDate default to current timezone when logging to console

Если в строке есть доли секунды, добавьте SSS в ваш формат строки: [formate setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];

Дополнительную информацию о форматировании даты вы можете получить Технический стандарт Unicode # 35 .

1 голос
/ 05 апреля 2011
NSString *string=@"2011-04-05T12:43:56.537";
NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease];  
[formate setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS"];  
NSDate *date = [formate dateFromString:string];

работает ..

1 голос
/ 05 апреля 2011

Замените вашу функцию SetDataFormat на ниже, и дайте мне знать результат ...

    [formate setDateFormat:@"yyyy-MM-ddTHH:mm:ss"];
...