//能夠這樣來改善 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];