Comment obtenir en format 12 heures de temps de chaîne lorsque le système est paramétré pour utiliser le format 24 heures
Je veux obtenir un temps de chaîne comme "10:00", et j'utilise le NSDateFormatterShortStyle pour atteindre cet objectif.
Toutefois, lorsque le système est configuré pour utiliser le format 24 heures, ce que j'ai est "22:00".
D'ailleurs, je veux obtenir un localisée chaîne de temps. Par exemple, en Chinois, je veux obtenir "下午10:00" au lieu de "10:00". J'ai donc l'utilisation de la [NSLocale currentLocale], et ne pouvez pas utiliser la en_US_POSIX locale.
Merci de m'aider à obtenir un localisée au format 12 heures de temps de chaîne.
J'ai besoin non seulement l'heure, et aussi l'am/pm. En outre, am/pm, une partie peut localiser avant l'heure/minute ou après l'heure/minute selon les paramètres régionaux. Tout comme le système d'affichage de l'heure.
Lorsque le système est configuré pour utiliser le format 12 heures, c'est tout simple. Mais lorsque le système est en utilisant le format de 24 heures, j'ai juste ne peux pas obtenir les localisée au format 12 heures de temps de chaîne.
les gars j'ai donné une réponse ici, vous pourrez voir ceci:- stackoverflow.com/a/50679548/9863222
OriginalL'auteur Swordsfrog | 2011-06-06
Vous devez vous connecter pour publier un commentaire.
Bien cela devrait fonctionner:
Ce devrait vous donner une date de formateur qui va donner la date en format 12 heures. La baisse des cas hh indique les heures de 1 à 12 format. Voir la Norme Technique Unicode n ° 35 de la section de Modèles De Format De Date pour plus de détails sur la chaîne de format.
Malheureusement iOS va réécrire le format de chaîne de caractères selon le format 24 heures paramètre de préférence. Je ne trouve pas de moyen de contourner ce paramètre à l'aide du Cacao le formatage de la date. Depuis 24 heures, le format de la chute de l'am/pm de la désignation, de l'analyse de la chaîne résultante à convertir les heures plus de 12 entraînera ambigu chaines de temps. Par conséquent, la seule restante des options que je peux voir, c'est d'honorer les utilisateurs de 24 heures paramètre de préférence ou en utilisant d'autres localisation code. Vous pouvez écrire votre propre, ou peut-être trouver un open source de remplacement.
Ma réponse était mauvais, j'ai donc fortement modifié la réponse.
Sa a fonctionné pour moi merci.. Il me donne "11:00" au format.. je veux comme 11pm... j'ai donc essayé avec hha mais il donne quand même 11 PM.. comment l'obtenir comme "11pm" ?
Vous pouvez poster des processus de la chaîne à l'aide de NSString méthodes comme lowercaseString et stringByReplacingOccurrencesOfString:withString:.
Ok. Merci. J'ai pensé il y a peut être moyen de le faire à dateformatter lui-même.. de toute façon merci pour votre réponse rapide. Je pense que cela va fonctionner pour moi.
OriginalL'auteur Mr. Berna
Swift 3.0
OriginalL'auteur Abhishek Jain
OriginalL'auteur Jonny