Как преобразовать строку даты, например «2011-06-25T11: 00: 26 + 01: 00», в длинную, как iphone? - PullRequest
0 голосов
/ 28 июня 2011

Мне нужно преобразовать эту строковую дату "2011-06-25T11: 00: 26 + 01: 00" в значение типа long.

Я пробовал это

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];

[df setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

[df setDateFormat:@"yyyy-MM-ddHH:mm:ssZ"];

NSDate *date = [df dateFromString:[time stringByReplacingOccurrencesOfString:@"T" withString:@""]];

[df setDateFormat:@"eee MMM dd, yyyy hh:mm"];

NSLog(@"time%@", time);
long lgTime =  (long)[date timeIntervalSince1970];

но это не работает. Пожалуйста, помогите мне.

Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 28 июня 2011

Прежде всего, я пропустил это в первый раз, но "2011-06-25T11:00:26+01:00” не может быть проанализирован.Правильная строка будет "2011-06-25T11:00:26+0100”.

Как только вы получите строку в этом формате, используйте формат даты - "yyyy-MM-dd'T'HH:mm:ssZ".

Пример использования

NSString * time = @"2011-06-25T11:00:26+0100";

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];  
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];

NSDate *date = [df dateFromString:time];

long lgTime = (long)[date timeIntervalSince1970];

NSLog(@"%ld", lgTime);
1 голос
/ 01 августа 2012

Если вы хотите преобразовать " 2011-06-25T11: 00: 26 + 01: 00 " в " 2011-06-25T11: 00: 26GMT + 01: 00 "который может быть проанализирован

NSMutableString *string=[[NSMutableString alloc]initWithString:@"2011-06-25T11:00:26+01:00"];

NSRange range = [string rangeOfString:@"+" options:NSBackwardsSearch];
[string insertString:@"GMT" atIndex:range.location];
NSLog(@"string is %@",string);

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

...