Как я могу конвертировать NSString в действительный NSDate (iOS) - PullRequest
0 голосов
/ 17 февраля 2012

Я передаю строку из javascript в Objective-C в виде «2012-02-17 14:21:30 +0000». Мой код выглядит следующим образом:

NSString *firingDate = [_parameters objectForKey:@"fire"];
NSDate *notificationDate = [NSDate dateWithString:firingDate];

Проблема в том, что я прочитал ссылку на OS X вместо документации по iOS (doh!), Поэтому выдается предупреждение, поскольку dateWithString отсутствует в iOS. Теоретически я полагаю, что это не должно работать вообще, но работает, хотя и с этим предупреждением.

Как правильно преобразовать строку в NSDate?

Ответы [ 3 ]

3 голосов
/ 17 февраля 2012

Правильный способ - использовать NSDateFormatter в качестве фабрики для создания дат из строк (и наоборот).

2 голосов
/ 17 февраля 2012

Попробуйте:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"YYYY-MM-dd HH:mm:ss Z";
NSDate *notificationDate = [formatter dateFromString:firingDate];
2 голосов
/ 17 февраля 2012

Попробуйте это:

NSString *firingDate = [_parameters objectForKey:@"fire"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *notificationDate = [dateFormatter dateFromString:firingDate];

Проверьте ссылку для разбора дат из нескольких регионов.

Не забудьте освободить ваш форматер, когда закончите.

...