2013-03-06 2 views
-4

я использую следующий фрагмент кода, чтобы преобразовать строку в дату, но формат времени правильно не приходит, когда я Регистрация датыдата выдачи форматировщик

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease]; 
    [formate setDateFormat:@"MM/dd/yyyy HH:mm a"]; 
    [formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
    NSString *strConcat = @"03/06/2013 2:59 PM"; 
    NSDate *date = [formate dateFromString:strConcat]; 
    NSLog(@"Output :%@",date); 

Выход: 2013-03-06 12:59:00 +0000

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

Спасибо заранее.

+0

чч вместо HH? – Larme

+2

http://stackoverflow.com/questions/4086492/formatting-date-and-time-with-iphone-sdk –

ответ

1

Ваша ошибка является HH в DateFormat вам нужно использовать hh

// чч дает 14:59

// HH дает 12:59

NSDateFormatter *formate = [[NSDateFormatter alloc] init]; 
[formate setDateFormat:@"MM/dd/yyyy hh:mm a"]; 
[formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
NSString *strConcat = @"03/06/2013 2:59 PM"; 
NSDate *date = [formate dateFromString:strConcat]; 
NSLog(@"Output :%@",date); 
+1

Это не проблема с часовым поясом. Это связано с различием между форматом «HH» (24 часа) и «hh» (12 часов). –

+0

@MartinR: 2:59 PM будет 14:59, не так ли? Здесь hh дайте 14:59, а HH 12:59 –

+1

Если вы используете 'hh: mm a' в качестве формата даты, тогда' 2:29 PM' правильно разобран на '14: 59'. Комбинация 'HH' для 24-часового формата плюс AM/PM, вероятно, не работает (в любом случае это не имеет особого смысла). - Часовой пояс явно установлен на GMT, поэтому он не может быть проблемой часового пояса. –

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