NSDate 变为 nil
NSDate becomes nil
当我将设备时间更改为 24 小时格式时,NSDate 变为 nil。
NSString *stampStr = @"10/6/2017 8:57:44 AM";
NSDateFormatter *oldFormatter = [NSDateFormatter new];
[oldFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSTimeZone *tz = [NSTimeZone timeZoneForSecondsFromGMT:10800]; // GMT+3
[oldFormatter setTimeZone:tz];
NSDate *oldDate = [oldFormatter dateFromString:stampStr];
但在 iPhone 设备中更改为 12 小时格式时它工作正常。
您需要设置 NSDateFormatter
的 locale
oldFormater.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
当我将设备时间更改为 24 小时格式时,NSDate 变为 nil。
NSString *stampStr = @"10/6/2017 8:57:44 AM";
NSDateFormatter *oldFormatter = [NSDateFormatter new];
[oldFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSTimeZone *tz = [NSTimeZone timeZoneForSecondsFromGMT:10800]; // GMT+3
[oldFormatter setTimeZone:tz];
NSDate *oldDate = [oldFormatter dateFromString:stampStr];
但在 iPhone 设备中更改为 12 小时格式时它工作正常。
您需要设置 NSDateFormatter
locale
oldFormater.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];