我使用此代码显示我从服务器获取的日期,但是使用GMT时显示的时间为5小时。回
-(NSString *)getDateStringFromServer:(NSDate *)date{
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:+0000]];
[formatter setDateFormat:@"dd MMM yyyy h:mm a"];
NSString *dateAsString = [formatter stringFromDate:date];
return dateAsString;
}
答案 0 :(得分:1)
相应地设置时区。 当你使用+0000
时根据gmt获得时间[NSTimeZone timeZoneForSecondsFromGMT:+0000]
根据您的时区获取时间根据您的时区设置秒差。 我的时区是GMT + 5 我设置了+(3600 * 5)。
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:+(3600*5)]];
并得到正确的输出“2014年12月12日下午7:55”。
以前是“2014年12月12日下午7:55”,+ 0000,错了,5小时后......
更新: 正如@Tom Harrington所建议的那样,你应该使用本地时间而不是timezoneforSecondsFromGmt。
[formatter setTimeZone:[NSTimeZone localTimeZone]];