格式化实体提取的数据

时间:2012-04-25 16:02:28

标签: objective-c nsdate nsdateformatter

在核心数据管理的表视图中,我有一个日期字段。现在我需要得到它,但输出中出现错误。

for (FesteGruppo *festeGruppoEntity in arrayController_.selectedObjects) {
                NSString *valorePrimaFesta=[festeGruppoEntity.data descriptionWithCalendarFormat:@"%w" timeZone:nil locale:nil];
                int prova = [valorePrimaFesta intValue];

                if (prova==0) {
                    --domenica;
                } else if (prova==1){
                    --lunedi;
                } else if (prova==2){
                    --martedi;
                } else if (prova==3){
                    --mercoledi;
                } else if (prova==4){
                    --giovedi;
                } else if (prova==5){
                    --venerdi;
                } else if (prova==6){
                    --sabato;
                }

                NSLog(@"The entity's date is %@", festeGruppoEntity.data);
                NSLog(@"The date number is %i", prova);
            }

我把这个日期:10/04/2012(dd / MM / yyyy),但我得到了这个结果: 该实体的日期为2013-04-09 22:00:00 +0000 日期编号为3。 我需要得到上面输入的相同日期,我该怎么办?

1 个答案:

答案 0 :(得分:1)

我猜你所在的时区是GMT + 02:00。我也猜测你要么在2013年输入日期,要么你错误地复制了输出。没有时间信息的日期为10/04/2012,在您的时区为“2012-04-10 00:00:00 +0200”,与“2012-04-09 22:00:00 +”相同0000" 。 NSDate以GMT + 00:00登录。

因此,我认为您必须为nil方法的timeZone:参数传递实际值,而不是-descriptionWithCalendarFormat:timeZone:locale: