小记:NSDateFormatter格式化失败

image.png

        NSString * brithStr = @"19860504";

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyyMMdd"];
        //    dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
        NSDate *date = [dateFormatter dateFromString:brithStr];
        if (!date) {
            NSLog(@"date : %@", date.description);
        } else {
            NSLog(@"date = %@", date.description);
        }


解决代码


        NSString * brithStr = @"19860504";
        NSString *dateFormatStr = @"yyyyMMdd";
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        
        //设置转换后的目标日期时区
        NSTimeZone *toTimeZone = [NSTimeZone localTimeZone];
        //转换后源日期与世界标准时间的偏移量
        NSInteger toGMTOffset = [toTimeZone secondsFromGMTForDate:[NSDate date]];
        NSTimeZone * zone = [NSTimeZone timeZoneForSecondsFromGMT:toGMTOffset];
        [formatter setTimeZone:zone];
        NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh"];
        [formatter setLocale:locale];
        [formatter setDateFormat: dateFormatStr];
        NSDate *date2 = [formatter dateFromString:brithStr];
        NSLog(@"----%@---", date2);

http://www.skyfox.org/ios-formatter-daylight-saving-time.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容