Convertir les dates de Chaîne dans iOS?
Que je reçois de mon serveur une date comme une chaîne de caractères comme ceci "10/4/2013 10:00:00". Maintenant, je veux seulement des heures à afficher dans mon étiquette.Mais le problème, c'est le matin à l'aide du code ci-dessous mais de ne pas avoir le temps réel.
-(NSString*)convert:(NSString*)strdate
{
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[formatter setLocale:[NSLocale systemLocale]];
[formatter setDateFormat:@"dd/MM/yyyy HH:mm:ss a"];
NSDate * date = [formatter dateFromString:strdate];
NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"hh:mm"];
NSString *depResult = [df stringFromDate:date];
NSLog(@"hours %@ ", [df stringFromDate:date]);
return depResult;
}
et suis en train de Chaîne d'entrée comme "10/4/2013 9:00:00" et l'obtention de la sortie comme "05:30".S'il vous plaît corrigez-moi où suis fait mal.Grâce
- Vous êtes en Inde, je soupçonne. Quel est le décalage horaire dans l'Inde?
- Pour l'inde +0530
- S'il vous plaît ne pas utiliser les formats de date, d'utiliser
NSDateFormatterStyle
- salut les amis, si je veux mettre de l'UTC, puis ce que la zone que j'ai à donner @AnoopVaidya
- Vous êtes en train de lire dans l'heure UTC et l'affichage de l'heure locale. NSLog votre objet NSDate et il affichera l'heure UTC de vous lire.
- Aussi
[formatter setDateFormat:@"dd/MM/yyyy HH:mm:ss a"];
iciHH
devrait êtrehh
- Si la chaîne de date est à venir à partir d'un "service", alors on DOIT utiliser un fixe de format de date.
- Oui, lorsque vous l'analyse du formulaire de chaîne de date oui, mais lors du formatage d'une date en chaîne, il est préférable d'utiliser la
NSDateFormatterStyle
de sorte que la date sera présentée de façon à ce que l'utilisateur veut. - Seulement si le programmeur veut le format de changer en fonction de l'utilisateur caprices.
- Le vrai et le smart développeur va utiliser la
NSDateFormatterStyle
. Comme la plupart des personnes dans le monde utilisentday-month-year
et pasmonth/day/year
cela peut causer de la sone problème avec un dat comme1-2-2014
et je dit que c'est le mieux à utiliser, ne plus l'utiliser. - Vous pouvez ignorer complètement styles de mise en forme. Ils sont un peu limitées et qui ont des problèmes sur certains lieux. Il est préférable de générer un style à partir d'un modèle (
+[NSDateFormatter dateFormatFromTemplate:options:locale:]
).
Vous devez vous connecter pour publier un commentaire.
Utiliser le code suivant:
en_US_POSIX
n'est pas nécessaire.en_US_POSIX
est le meilleur locale à choisir.Si vous avez cette date
"10/4/2013 9:00:00 pm"
de serveur,et vous voulez la même chose en Inde, si votre sortie désirée est
02:24 AM
Alors vous devez faire quelque chose comme ça.
systemlocale
... vous avez besoin de elle le timeZoneForSec... à 0.