2016-10-03 4 views
-1

dbVoiceDate не так почему?iOS NSDateFormatter возвращает неверную дату

Я пробовал много!

NSDateFormatter *formatterVoice = [[NSDateFormatter alloc] init]; 
formatterVoice.dateFormat = @"dd-MMM-yyyy hh:mm:ss"; 
dbVoiceDate = [formatterVoice dateFromString:dbDateStr]; 

Получение ответа:

Описание Печать dbDateStr:

03-Oct-2016 10:43:59 

Описание Печать self->dbVoiceDate:

2016-10-03 05:02:16 +0000 

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

+0

Часовой пояс - это проблема, см. Это http://stackoverflow.com/questions/16621330/nsdateformatter-not-working-to-set-settimezone –

+0

http://stackoverflow.com/questions/8442706/nsdateformatter-and -time-zone-issue –

+0

Какую дату вы не скажете мне ... тогда я даю вам идеальный ответ. –

ответ

1

формат его как этот

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd-MMM-yyyy hh:mm:ss"]; 
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 

//then do your coding. 
0

Вы должны проверить часовой пояс. Если в GMT установить часовой пояс по Гринвичу, как это:

[youDateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 

Иначе вы можете использовать локальный часовой пояс, как это:

[youDateFormat setTimeZone:[NSTimeZone systemTimeZone]]; 

Надеется, что это помогает ... :)

1

Try это: -

NSString *dateString = @"Thu Oct 3 10:34:58 +0000 2016"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE MMM dd hh:mm:ss Z yyyy"]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"%@", date); 
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss"]; 
NSString *finalDateStr = [dateFormatter stringFromDate:date]; 
NSLog(@"%@", finalDateStr); 
1

Попробуйте следующий код:

+(NSString*)getDateWithMonthSpelling:(NSString*)dateStr 
{ 
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.dateFormat = @"dd/MM/yyyy"; 
    NSDate *yourDate = [dateFormatter dateFromString:dateStr]; 
    dateFormatter.dateFormat = @"dd MMM yyyy"; 
    NSString*myDate = [dateFormatter stringFromDate:yourDate]; 
    return myDate; 
} 
Смежные вопросы