NSString到NSDate没有正确的结果

时间:2013-10-23 10:03:14

标签: mysql ios core-data nsdate

我通过JSON通过Web服务获得String格式的日期,mysql数据库中的这个日期是一个TimeStamp字段。

我以这种方式获取网络服务的日期 2013-09-24 20:30:00

当我运行代码从NSString获取NSDate时, 2013-09-24 18:30:00 +0000

我用来解析的代码是:

- (NSDate *)parseNSStringToNSDate:(NSString *)hora {
         NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
         [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
         return [dateFormatter dateFromString:hora];
  }

如果你发现我已经在两小时内完成了两个小时而不知道为什么。 我也一直在测试时区设置。例如:

- (NSDate *)parseNSStringToNSDate:(NSString *)hora {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GTM"]];
return [dateFormatter dateFromString:hora];

}

1 个答案:

答案 0 :(得分:4)

你可以这样做。

- (NSDate *)parseNSStringToNSDate:(NSString *)hora {
     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

     NSLocale * enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    [dateFormatter setLocale:enUSPOSIXLocale];

     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
     return [dateFormatter dateFromString:hora];
  }

希望,这会奏效。

一切顺利