2013-06-01 5 views
-2

Я знаю, что это простой вопрос, но я занимаюсь этой проблемой почти 6 часов. Я хочу заказать дату в другом формате. Не большое дело, но она по-прежнему дает мне обратно: (нуль)Нужна помощь в NSDateFormatter

Пример:

Дата У меня есть: 2013-06-01 10:54:42

Дата Я хочу, чтобы показать: 01-06-2013 10:54:42

Мой код:

NSString *dateString = @"2013-06-01 10:54:42"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *date = [dateFormat dateFromString:dateString]; 
[dateFormat setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
NSLog(@"%@",date); 

Любая помощь будет оценена по достоинству!

+0

вы бежите это на главном потоке? Этот код работает для меня. –

+0

Используйте тег [tag: xcode] для вопросов о самой IDE. Благодаря! – Undo

+0

Я голосую, чтобы закрыть этот вопрос, потому что он старый, и вопрос уже не имеет значения. Пожалуйста, удалите этот вопрос. С 112 просмотров через 3 года он не будет пропущен. :) –

ответ

1

Try:

NSLog(@"%@",[dateFormat stringFromDate:date]); 

Вы создаете форматер, но не использовать его, чтобы создать строку даты. Вместо этого вы просто печатаете объект даты напрямую, и его метод описания печатает его с форматированием по умолчанию, а не форматированием, который вы пытаетесь использовать.

+1

Ты сделал мой день! Этот кусок кода занял у меня 6 часов для решения. Огромное спасибо! –

1

Ваш код работает отлично

NSString *dateString = @"2013-06-01 10:54:42"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
    NSDate *date = [dateFormat dateFromString:dateString]; 
    [dateFormat setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
    NSLog(@"%@",date); 
    NSLog(@"%@",[dateFormat stringFromDate:date]); 
+0

Код OPs - нет. Он печатает форматирование по умолчанию, а не форматирование OP хочет (dd-MM-yyyy HH: mm: ss) – powerj1984

+0

Тогда это должен быть ваш вопрос. Теперь это говорит о том, что вы получаете null –

+0

Это не мой вопрос – powerj1984

1

В любом случае это работает для меня. Должно быть что-то в самом коде, с которым вы столкнулись. Код показывает, очевидно, готов к этому вопросу:

NSString *dateString = @"2013-06-01 10:54:42"; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *date = [dateFormat dateFromString:dateString]; 

[dateFormat setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 

NSLog(@"%@",date); 
NSLog(@"%@",[dateFormat stringFromDate:date]); 

Выход:

2013-06-01 19:54:19.497 testpgm[23606:c07] 2013-06-01 08:54:42 +0000 
2013-06-01 19:54:21.452 testpgm[23606:c07] 01-06-2013 10:54:42 
+0

Проблема в коде OPs заключалась в том, что OP не использовал форматтер для форматирования что они печатали, и вместо этого непосредственно печатали объект даты. – powerj1984

+0

Да, но почему он говорит, что получает (null). Я получаю стандартную форматированную строку, потому что NSDate реализует метод описание, используемое в таких случаях. – hol

+0

Я действительно не мог сказать, почему ОП сказал, что – powerj1984