如何使用NSDateFormatter将NSString转换为NSDate?

时间:2012-07-09 14:02:39

标签: iphone ios nsstring nsdate nsdateformatter

我从网络服务获取日期,例如“2012-07-03 07:26:48”。我从webservice解析后保存在NSString中。将NSString转换为在代码下面使用的NSDate,

    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
    [dateFormatter1 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    NSString *dateStr = @"2012-07-03 07:26:48";
    NSDate *date = [dateFormatter1 dateFromString:dateStr];
    NSLog(@"Date : %@", date);
   The NSLog value is "2012-07-03 01:56:48 +0000";

NSLog值为“2012-07-03 01:56:48 +0000”;我不知道为什么时间变了。有人可以帮我这样做吗?

3 个答案:

答案 0 :(得分:2)

您需要将时区设为:

theDateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

因为它正在考虑GMT时间格式。

答案 1 :(得分:1)

您必须设置NSDateFormatter的时区。

答案 2 :(得分:0)

默认情况下,将字符串转换为nsdate时,日期以utc格式保存...您可以将日期中的原始时间作为字符串...如果要更改时区,请使用dateformatter进行更改..否则不要更改