Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

iOS - Formatação adequada de timestamps entre mySQL (apache) e iOS (NSDate)


Por padrão, NSDateFormatter é definido como localTimeZone. Como seu dateString não tinha informações de fuso horário, ele calculou o tempo wrt para localTimeZone. Se você sabe que o fuso horário do seu dateString é UTC, então você precisa definir isso para dateFormatter.

NSDate representa o tempo absoluto, a representação pode variar entre fusos horários, mas é um valor único e não será afetado pelo horário de verão.
-(NSDate *)formatDateWithString:(NSString *)dateString{
     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
     [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
     NSDate* date = [dateFormatter dateFromString:dateString];
     NSLog(@"Formatted Timestamp: %@ - Original Timestamp: %@", date,dateString);
     return date;
}