自1970年以来NSTimeInterval到NSDate

时间:2012-08-03 08:59:21

标签: nsdate nsdateformatter nstimeinterval

我有以下代码:

-(void)setDate:(double)dateInterval {
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:(NSTimeInterval)dateInterval];
    NSLog(@"NSDate-Result: %@", [date description]);

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterMediumStyle];

    [formatter setFormatterBehavior:NSDateFormatterBehavior10_4];
    [formatter setDateFormat:@"YYYY-MM-DD HH:mm:SS"];

    NSString *dateString = [formatter stringFromDate:date];
    NSLog(@"String-Result: %@", dateString);

    date_label.text = dateString;
}

NSDate日期是正确的,但转换的字符串不再正确。

结果:

  

2012-08-03 10:58:40.469 iSkizzenaufmass [4148:c07] NSDate-结果:   2012-08-03 08:08:35 +0000 2012-08-03 10:58:40.471   iSkizzenaufmass [4148:c07] String-Result:2012-08-216 10:08:48

1 个答案:

答案 0 :(得分:2)

您必须使用yyyy-MM-dd HH:mm:SS代替-DD(DD是一年中的某一天)

编辑:将YYYY改为yyyy,因为YYYY是基于周的年份,可能与当前年份不同(请参阅以下所有选项的链接)