2012-01-28 2 views
0

Je suis face à problème avec récupération de la date correcte en utilisant formatter.I date ont sauvé la date dans le format suivant:conversion de formatter NSDate ne pas céder la date correcte

[dateFormat setDateFormat: @ "AAAA-MM-JJ HH: mm : ss "]; Maintenant, j'ai besoin d'afficher la date enregistrée dans le contrôleur de vue.Pour la commodité de la lisibilité et la simplicité, j'ai récupéré la date enregistrée de la base de données et changé en un format court, par exemple Janvier 17, Février 18 etc. code de mise en œuvre pour que:

remind.Date = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statment, 3)]; 
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *date = [dateFormat dateFromString:remind.Date]; 
[dateFormat setDateFormat:@"MMMM dd"]; 
NSString *dateVal = [dateFormat stringFromDate:date]; 
remind.Date = dateVal; 

maintenant la valeur de date sera visible comme le montre la capture d'accrochage suivant:

enter image description here

Toutes ces dates sont enregistrées dans un tableau appelé grpArray

Maintenant, je veux récupérer la date complète de date formatée, lorsque je sélectionne la ligne et accédez au contrôleur lorsque cette date est enregistré, pour que ne sélectionnez la ligne à chemin d'index I mis en œuvre le code suivant:

-(void)tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

     ReminderClass *rem = [self.grpArray objectAtIndex:indexPath.section]; 

     // Instantiate your detail/editor view controller, 
     // and pass in the ReminderClass object to be edited. 
     ERAddReminderViewController *rdvc = [[[ERAddReminderViewController alloc]initWithReminder:rem]autorelease]; 

     NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease]; 
     [dateFormat setDateFormat:@"MMMM dd"]; 
     [dateFormat setLenient:YES]; 
     NSDate *date = [dateFormat dateFromString:rem.Date]; 
     [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
     NSString *dateVal = [dateFormat stringFromDate:date]; 
     rem.Date = dateVal; 

     [self.navigationController pushViewController:rdvc animated:YES]; 
     rdvc.navigationItem.rightBarButtonItem.title = @"Edit"; 
} 

maintenant selon la logique que je devrais obtenir le format soit la date complète specified.Its fonctionne bien mais nous avons eu un problème avec l'année et l'heure qui était à l'origine saved.Please voir le coup de pression suivant des éclaircissements:

enter image description here

maintenant la date que nous pouvons voir est 1970-01-17 00:00:00

Mais la date réelle que je sauvé était 2012-01-17 19:40:40

Qu'est-ce qui a mal tourné avec la mise en œuvre

Quelqu'un peut-il s'il vous plaît me guider à droite

Merci à tous à l'avance :)

Répondre

1

Ce que je vois est que vous essayez de convertir une date MMMM dd à un yyyy-MM-dd HH:mm:ss. Ce qui n'est pas possible puisque la date dans le premier format ne connaît pas l'année et l'heure.
C'est pourquoi il montre 1970 00:00:00, les 01-17 sont corrects (bien sûr)

Vous devez toujours «stocker» la date d'origine yyyy-MM-dd HH:mm:ss et travailler avec celle-ci au lieu de celle formatée.

+0

Très reconnaissant pour la réponse, mais ce que je veux faire est d'afficher le format en tant que mois dans les cellules de la table, lorsque l'utilisateur sélectionne la ligne, il/elle doit être en mesure de voir la date complète être fait à la date existante.Si je ne récupère pas la date complète, il est affiché comme rien quand je reviens à la précédente, Alors s'il vous plaît aidez-moi sur ces lignes, merci :) –

+0

S'il vous plaît voir la photo, 1er où le l'utilisateur peut voir les dates, et lors de la sélection, il navigue vers les données où cette date est présente, j'ai placé un bouton (barre de navigation droite) modifier pour apporter des modifications et quand la modification est terminée, il clique sur done.Then la date de modification est écrasé par l'existant, la vue est affichée dans la 2ème capture d'écran –

+0

Pouvez-vous me montrer le code où vous ajoutez la date au tableau 'grpArray'? – basvk

Questions connexes