2012-01-28 5 views
0

が得られていない私は、次の形式で日付を保存した日付formatter.Iを使用して、適切な日付の検索で問題に直面しています:NSDateフォーマッタ変換が正しい日付

[DATEFORMATのsetDateFormat:「YYYY-MM-DD HH:@ミリメートル:ss "];

保存した日付をビューコントローラに表示する必要があります。読みやすくシンプルにするために、保存された日付をデータベースから取得し、1月17日、2月18日などの短い形式に変更しました。そのための実装コード:以下のスナップショットに示すように

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; 

今すぐ日付値が表示されます:すべてのこれらの日付はgrpArray 012という配列にして保存されている

enter image description here

今、私は、行を選択し、その日付が保存される場所をコントローラに移動したときにその中のため、フォーマットされた日付の完全な日付を取得したいが、私は、次のコードを実装したインデックスパスで行選択をした:

-(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"; 
} 

は今のロジックに従って、私は完全な日付、すなわちフォーマットspecified.Itsは正常に動作しますが、もともと明確化のため、以下のスナップショットを参照してくださいsaved.Pleaseた正しい年と時間との問題だ取得する必要があります。

enter image description here

は、今、私たちが見ることができるよう、日付は1970年1月17日午後12時00分00秒

である。しかし、私が保存されて実際の日付はと何が悪かったのか2012-01-17午前19時40分40秒

ました実装

は、いずれかを使用すると、yyyy-MM-dd HH:mm:ssに日付MMMM ddを変換しようとしている私は何を見ているすべての

答えて

1

:)事前に私の右

感謝を案内してくださいすることができます。 最初の形式の日付が年と時刻を知らないので、どのようなことはできません。
その理由は1970年代00:00:00、01-17は正しいです(ofcourse)

いつも元の日付yyyy-MM-dd HH:mm:ssを「保存」して、フォーマットされたものではなく動作させる必要があります。

+0

答えに非常に感謝していますが、ユーザーが行を選択したときに完全な日付を表示できるようにする必要があります。私は完全な日付を取得していない場合は、前に戻ったときに何も表示されないので、これらの行に私を助けてください、ありがとう:) –

+0

スナップショット、ユーザーは日付を表示することができ、選択時にその日付が存在するデータにナビゲートします。変更を行うためのボタン(右ナビゲーションバーボタン項目)の編集を行い、変更が完了したら、完了します。 2番目のスクリーンショットに表示されています –

+0

'grpArray'配列に日付を追加するコードを表示できますか? – basvk

関連する問題