2012-04-18 4 views
2

Странный вопрос:Странный вопрос Дата из строки

Я преобразование строки в дату с помощью следующего кода:

NSString *dateStr = @"02/10/2012 12:00:13 PM"; 

NSDateFormatter *dtF = [[NSDateFormatter alloc] init]; 
[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 

NSDate *d = [dtF dateFromString:dateStr]; 
NSDateFormatter *dateFormatStr = [[NSDateFormatter alloc] init]; 

[dateFormatStr setDateFormat:@"MMMM dd, yyyy HH:mm a"]; 
NSString *strDate = [dateFormatStr stringFromDate:d]; 
NSLog(@"Output:::-->%@",strDate); 

Я использую Xcode 4.2

Сво работает отлично в Simulator и в устройстве iPhone 3Gs и iPad с iOS 5.0 и iPhone 4

Но проблема в iPod с iOS 5.0.1. В iPod это показывает (null) значение.

Что не так в коде? ИЛИ есть ли другая проблема?

+1

код Devang прекрасно работает для меня. Итак, можете ли вы сказать, что на самом деле вы получаете в качестве результата при использовании кода Devang? –

+0

Вы передаете ту же строку «02/10/2012 12:00:13 PM» как «dateStr»? –

+0

@ParthBhatt: тот же результат (null) ... еще одно время: 12:00:13 - формат 24 часа, и я хочу его в 12-часовом формате – Maulik

ответ

1

Решенный !!!

Проблема заключалась в строки даты NSString *dateStr = @"02/10/2012 12:00:13 PM";

время в 24-часовом формате с «AM/PM» Я думаю, что было неправильно. AM/PM должен быть с 12-часовым форматом.

Итак, я только что удалил AM/PM из строки, и это сработало !!!

также из кода:

[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss"]; 
+1

То, что parth и я предложил вам в комментариях. – Devang

+0

@Devang: спасибо вам обоим .. – Maulik

2

Вместо того a попробовать aaa

Замените код следующим образом:

NSString *dateStr = @"02/10/2012 12:00:13 PM"; 

NSDateFormatter *dtF = [[NSDateFormatter alloc] init]; 
[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 

NSDate *d = [dtF dateFromString:dateStr]; 
NSDateFormatter *dateFormatStr = [[NSDateFormatter alloc] init]; 

[dateFormatStr setDateFormat:@"MMMM dd, yyyy hh:mm aaa"]; 
NSString *strDate = [dateFormatStr stringFromDate:d]; 
NSLog(@"Output:::-->%@",strDate); 

Выход ::: ->February 10, 2012 12:00 PM

+0

Спасибо за быстрый ответ ... но не работает ... – Maulik

+0

@Maulik: Очистите и перестройте его. – Devang

+0

еще одно время: 12:00:13 - формат 24 часа, и я хочу его в 12-часовом формате. – Maulik

3

Я обнаружил, что выход NSDateFormatter может быть нестабильным из-за пользователей на своих iPhone. Вы можете заставить его быть стандартизированы (я не могу вспомнить детали) с помощью этого -

[dtF setLocale:enUSPOSIXLocale]; 

... делает весь выход более предсказуемым.

+0

Отлично! У меня была такая же проблема, и это исправлено! – reddersky

Смежные вопросы