Как преобразовать строку даты, например «2011-01-12T14: 17: 55.043Z», в длинную, например, 1294841716? - PullRequest
4 голосов
/ 26 января 2011

Мне нужно преобразовать дату в следующем формате:

"2011-01-12T14: 17: 55.043Z"

в число, подобное 1294841716 (это количество секунд[не миллисекунды] с 1 января 1970 года).Есть ли простой способ сделать этот анализ?

Обновление: Вот код, который я получил до сих пор:

NSString *dateString = @"2011-01-12T14:17:55.043Z";
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.nnnZ"];
NSDate *parsed = [inFormat dateFromString:dateString];
long t = [parsed timeIntervalSinceReferenceDate];

Но t возвращаетсякак 0 каждый раз.

1 Ответ

18 голосов
/ 26 января 2011

Используйте NSDateFormatter для получения 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:@"2011-01-12T14:17:55.043Z"];
NSLog(@"Date: %@", date);
NSLog(@"1970: %f", [date timeIntervalSince1970]);
NSLog(@"sDate: %@", [formatter stringFromDate:date]);
[formatter release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...