【问题标题】:NSTimeInterval since1970 to NSDateNSTimeInterval since1970 to NSDate
【发布时间】:2012-08-03 08:59:21
【问题描述】:

我有以下代码:

-(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] 字符串结果:2012-08-216 10:08:48

【问题讨论】:

    标签: nsdate nsdateformatter nstimeinterval


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2012-12-11
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多