NSDateFormatter dateFromString错误的结果?

时间:2015-08-21 12:53:45

标签: ios objective-c nsdate nsdateformatter

我试图从NSDate获取NSString个对象。问题在于,我losing在此过程中的一天。

这是NSString2015-08-01,以下是代码:

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"yyyy-MM-dd"];
    NSDate *result = [df dateFromString:dateString];

result原来是2015-07-31 21:00:00 +0000

怎么样?我不明白。此外,21:00:00来自哪里?无论在真实设备或模拟器上运行代码,我都能得到相同的结果。

知道为什么吗?我怀疑是timezone问题。但是,我以dateString格式获得UTC,而我却没有改变它。想法?

2 个答案:

答案 0 :(得分:2)

检查时区。

if (weakController.isAlive)
{
  TableViewController controller = weakController.Target as TableViewController;
}

答案 1 :(得分:1)

设置时区将起到作用

NSString *dateString = @"2015-08-01";
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
    [df setDateFormat:@"yyyy-MM-dd"];
    NSDate *result = [df dateFromString:dateString];