解决NSDate获取年份错乱问题

129 阅读1分钟

问题

最近发现通过[NSDate date]返回的时间,通过格式化后,展示的年份异常,为0005 年份异常

解决方案

原因是客户选取了其他日历作为展示日历,系统读取日历导致异常

通过在格式化的时候固定选择公历修复该情况:

    //当前时间
    NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
    [dateFormater setDateFormat:@"yyyyMMdd"];
//    dateFormater.locale = [[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]];  // 获取首选语言地区标识符
    dateFormater.calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];// 选择公历,避免日本日历、佛教日历取date异常
    NSString *dateTime = [dateFormater stringFromDate:[NSDate date]];