J'ai des problèmes pour afficher la date correcte dans mon application. Lorsque l'utilisateur définit le format 24 heures sur "ON" dans ses préférences de date/heure..mon application indique l'heure correcte, mais lorsque le format 24 heures est défini sur "OFF", rien ne s'affiche.
Voici le code que j'utilise:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:style];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *temp = [formatter dateFromString:strDate];
[formatter setDateFormat:format];
[formatter setLocale:[NSLocale currentLocale]];
NSString *returnStr = [formatter stringFromDate: temp];
[formatter release];
NSLog(@"Return: %@", returnStr);
return returnStr;
Pendant 12 heures: (hh: mm: ss)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
Pour 24 heures: (HH: mm: ss)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
Essaye ça
[dateFormat setDateFormat:@"hh:mm:ss"];
HH: format 24 heures
hh : format 12 heures
Donc dans ton cas
//after conversion to date
if ON
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
if OFF
[formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
utilisez ceci:
Objectif c :
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
Swift 4.1
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
après cela, votre date ne sera pas modifiée.
Définissez les paramètres régionaux de dateFormatter comme suit. Cela devrait régler votre problème.
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm"];
NSString *dateString = [dateFormat stringFromDate:[NSDate date]];