1.轉換string多了8小時
?- (NSString*)dateAsString:(NSDate*)date {
NSTimeZone *timeZone=[NSTimeZonetimeZoneWithName:@"UTC"];
NSDateFormatter *formatter=[[NSDateFormatteralloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[formatter setTimeZone:timeZone];
NSString * timeString = [formatter stringFromDate:date];
return timeString;
}
使用方法:timeString = [self dateAsString:date];
原因:無論環境是使用12小時制還是24小時制,yyyy-MM-dd HH:mm:ss返回都是24小時制。設置TimeZone為UTC ,這樣使得轉換時間不會出現8小時誤差
?2.轉換string少了8小時
?- (NSString*)dateAsString:(NSDate*)date {
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
formatter.dateFormat=@"yy-MM-dd HH:mm:ss";
NSString *timeStr=[formatter stringFromDate:date];
NSTimeZone *timeZone=[NSTimeZone systemTimeZone];
NSInteger seconds=[timeZone secondsFromGMTForDate:date];
NSDate *newDate=[date dateByAddingTimeInterval:seconds];
NSString *newTimeStr=[formatter stringFromDate:newDate];
return timeString;
}
使用方法:timeString = [self dateAsString:date];