首页 > 解决方案 > 在 iOS 13 和 iOS 11.4 中从字符串转换日期的不同结果

问题描述

我在 iOS 11.4 上从字符串转换日期时遇到问题。iOS 11.4 上的相同函数返回 nil,但在 iOS 13 中返回正确值。我正在使用 Xcode 11.0,这个转换函数:

+ (NSDate *)getDateFromStringDate:(NSString *)stringDate {
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"];
    return [dateFormat dateFromString:stringDate];
}

标签: iosobjective-cxcode

解决方案


NSISO8601DateFormatter 比您可以编写的任何格式字符串都了解更多并且更灵活。将您的代码重写为

+ (NSDate *)getDateFromStringDate:(NSString *)stringDate {
    NSISO8601DateFormatter * df = [NSISO8601DateFormatter new];
    return [df dateFromString:stringDate];
}

推荐阅读