我从网络服务获取日期,例如“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”;我不知道为什么时间变了。有人可以帮我这样做吗?
答案 0 :(得分:2)
您需要将时区设为:
theDateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
因为它正在考虑GMT时间格式。
答案 1 :(得分:1)
您必须设置NSDateFormatter
的时区。
答案 2 :(得分:0)
默认情况下,将字符串转换为nsdate时,日期以utc格式保存...您可以将日期中的原始时间作为字符串...如果要更改时区,请使用dateformatter进行更改..否则不要更改