iOS开发Debug之date转换string-8小时问题
程序员文章站
2022-05-01 17:37:01
1.转换string多了8小时
?- (NSString*)dateAsString:(NSDate*)date {
NSTimeZone *timeZone=[N...
1.转换string多了8小时
使用方法:timeString = [self dateAsString:date];
原因:无论环境是使用12小时制还是24小时制,yyyy-MM-dd HH:mm:ss返回都是24小时制。设置TimeZone为UTC ,这样使得转换时间不会出现8小时误差
?2.转换string少了8小时
使用方法:timeString = [self dateAsString:date];
?- (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];
上一篇: 英国:虚拟现实技术“走进”汽车行业