2010-12-08 24 views

Répondre

2

Lorsque vous dites que vous l'avez converti en une date, que voulez-vous dire? Voulez-vous dire que vous l'avez dans un objet NSDate? Si c'est le cas, la date est et non dans le format 24 heures. NSDate ne se préoccupe pas de la façon dont la date apparaîtra à l'écran.

La mise en forme provient de vos paramètres de localisation. C'est comme ça que ça devrait être. Je ne veux pas de temps au format 12h plus que ce que vous voulez en 24 heures. Mais pour répondre directement à la question, vous devrez peut-être écrire votre propre code de mise en forme si vous souhaitez remplacer les valeurs par défaut. J'ai dû faire ceci pour contourner les bogues dans NSDateFormatter quand j'ai reçu des dates d'une source de données de tiers.

3

étant donné que vous avez une heure int nommé temps ...

si (temps> 12) temps = temps 12;

3

Vous pouvez utiliser le format d'horloge 24 heures au lieu du format 12 heures. Utilisez donc un NSDateFormatter avec H dans la chaîne de format. L'utilisation de l'un des formats prédéfinis finira par utiliser la localisation de votre système qui est probablement le format 12 heures.

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init]; 
[inputFormatter setDateFormat:@"HH:mm"]; 

Une autre solution est présentée ici en utilisant regex:
24hr to 12hr time convert, insert character to string

0

Pour changer le format de date de 12 à 24 heures ou de 24 à 12 changer simplement hh: mm HH: mm où h est pour 12 heures et H est pour 24 heures. N'oubliez pas de changer votre emplacement.

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"HH:mm"];