Конвертировать NSString (2011-04-18 18: 57: 47.453000) в NSDate - PullRequest
1 голос
/ 19 апреля 2011

Эй, ребята, я много искал, но не могу заставить мой код работать.

Я получаю дату в виде строки в следующем формате: 2011-04-18 18: 57: 47.453000

Я хочу преобразовать это в NSDate, чтобы вычислить прошедшее время, но я не могу понять, правильно ли это преобразование. вот что я делаю:

NSString *dateString = [entityData objectForKey:@"creation_time"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.fff"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
[dateFormatter release];

когда я печатаю dateString, я получаю: 2011-04-18 18: 57: 47.453000 но печать dateFromString дает: (ноль)

Кто-нибудь может указать мне правильное направление?

1 Ответ

5 голосов
/ 01 декабря 2011

Вы, вероятно, решили это некоторое время назад ... но:

NSString *dateString = @"2011-04-18 18:57:47.453000";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone: [NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSSSSS"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [df dateFromString:dateString];
[df release];

Некоторую полезную информацию о компонентах даты преобразования можно найти в «Таблице символов поля даты», расположенной здесь:

http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

...