//能够这样来改善 NSDate *date = picker.date; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate:date]; NSDate *localDate = [date dateByAddingTimeInterval:interval];
但若是用NSDateFormatter格式化以后就不能再用上面的timeZone了,不然会形成时间向后8小时的状况出现code
NSDateFormatter *fomatter = [[NSDateFormatter alloc] init]; if (self.pickMode == kDefaultPickerMode) { [fomatter setDateFormat:@"yyyy-MM-dd HH:mm"]; }else if (self.pickMode == UIDatePickerModeTime){ [fomatter setDateFormat:@"HH:mm"]; }else if (self.pickMode == UIDatePickerModeDateAndTime){ [fomatter setDateFormat:@"yyyy-MM-dd HH:mm"]; }else if (self.pickMode == UIDatePickerModeCountDownTimer){ [fomatter setDateFormat:@"HH:mm"]; } NSString *fomatterLocalDate = [fomatter stringFromDate:date];