0

可能重复:
NSDateFormatter 没有给我正确的信息

我正在使用 NSDate ,我使用以下技术仅将其转换为日期:

+ (NSDate *) dateOnly:(NSDate *)date
{
    long time = [date timeIntervalSinceReferenceDate];
    long timeMod = time % kNumSecondsInDay;
    NSTimeInterval newTime = time - timeMod;

    return [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:newTime];
}

这给了我预期的结果:

    NSLog(@"Due Date:%@", _dueDate);

--> 截止日期:2012-11-21 00:00:00 +0000

但是,当我使用日期格式化程序时,它会给我前一天:

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterShortStyle];
    NSString *result = [formatter stringFromDate:_dueDate];
    NSLog(@"Result: %@", result);

--> 结果:2012 年 11 月 20 日

是什么赋予了?

4

1 回答 1

3

时区。日期为 UTC 时间 11 月 21 日午夜;如果您的时区落后于 UTC,那么它将是 11/20。

于 2012-11-21T18:26:26.397 回答