IOS日期转换+时区问题+即使在时区后也始终返回-1天。

时间:2014-02-10 15:31:30

标签: ios objective-c

我编写了将日期从字符串转换为日期的函数。代码如下

NSCalendar *calendar = [NSCalendar currentCalendar];
    [calendar setTimeZone:[NSTimeZone localTimeZone]];

    NSDateFormatter *df = [[NSDateFormatter alloc]init];
    [df setTimeZone:[NSTimeZone localTimeZone]];
    [df setDateFormat:@"dd MMM, yyyy"];

    NSDateComponents *comp = [calendar components:NSMonthCalendarUnit|NSYearCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:[df dateFromString:nDate]];
   [comp setTimeZone:[NSTimeZone localTimeZone]];

    NSLog(@"%@",[calendar dateFromComponents:comp]);

我正在通过nDate作为:2014年2月10日,但功能正在退休我2014-02-09 18:30:00 +0000。让我知道我做错了什么。提前谢谢。

1 个答案:

答案 0 :(得分:2)

NSLog()只会调用NSDate的{​​{1}}方法。这不会将时区设置为您在记录日期时的预期。你可以试试这个:

description