2014-11-27 3 views
5

Ho un problema con questo metodo:Ottenere ultima volta con periodo del iPhone 4 con NSDateFormatter

-(NSString *)getLastTimeMessageWithPeriod:(NSDate*)lastMessageDate 
{ 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

[dateFormatter setDateFormat:@"h:mm a"]; 

NSString *resultString = [dateFormatter stringFromDate: lastMessageDate]; 

return resultString; 
} 

In iPhone 4 (iOS 7.1) il ritorno ResultString "00:32"

In iPhone 5 (iOS 8) resultString restituisce "12:32 Am"

Quale può essere il problema che fa perdere il periodo in iPhone 4?

risposta

1

Ho appena testato il codice fornito sul mio dispositivo iOS 7.1 e mi ha dato "3:22", quindi il problema non è il dispositivo o la versione del sistema operativo.

Il problema è che il locale, mi piace questo e funzionerà

- (NSString *)getLastTimeMessageWithPeriod:(NSDate *)lastMessageDate 
{ 
    NSDateFormatter *dateFormatter = [NSDateFormatter new]; 
    [dateFormatter setDateFormat:@"h:mm a"]; 
    [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 

    return [dateFormatter stringFromDate:lastMessageDate];; 
}