1

我通过 JSON 通过 Web 服务获取字符串格式的日期,mysql 数据库中的这个日期是一个时间戳字段。

我以这种方式获取网络服务的日期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];

}

4

1 回答 1

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];
  }
于 2013-10-23T10:20:20.623 回答