J'ai un problème d'affichage de la date appropriée dans mon application. Lorsque l'utilisateur définit le format de 24 heures "sur" dans ses préférences de la date de date ..MY App montre une heure correcte, mais lorsque le format 24 heures est défini sur "OFF", cela ne montre rien.
Voici le code que j'utilise: P >
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;
5 Réponses :
Définissez la locale de la date de date suivante. Il devrait supprimer votre problème.
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"]; [dateFormatter setLocale:locale];
Utilisez ceci:
objectif-c: strong> p> SWIFT 4.1 strong> p> dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
Exactement, ce bug connu est décrit par Apple < / a>: "La représentation du temps peut être 13h00. Dans iOS, toutefois, si l'utilisateur a changé de temps de 24 heures sur OFF, le temps peut être 13h00.".
Pas un bug, c'est une fonctionnalité. Bien que cela soit un peu confusant de savoir comment le gérer correctement.
Cette réponse est la plus correcte, l'utilisation de HH avec un réglage d'horloge de 12 heures donnera AM / PM dans la chaîne de sortie.
Essayez ceci HH fort>: 24 heures p> donc dans votre cas p>
Devrait utiliser minuscule "yyyy"
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
De plus, si vous exécutez ce code dans iOS 7, vérifiez également le paramètre Système. GOTO Réglage -> Général -> Date et heure -> Éteignez le format 24HR
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"YYYY-MM-dd HH:mm"]; NSString *dateString = [dateFormat stringFromDate:[NSDate date]];
Devrait être minuscule "aaaa", majuscule est pour des calendriers basés sur l'année "
Utilisez Yyyy Not Yyyy si vous voulez l'année civile. Yyyy ne correspond pas à Yyyy à la fin de décembre.