将NSString转换为NSDATE



我想将nsstring转换为nsdate。

问题是我正在阅读图像中的EXIF信息,该信息给出了NSString值。现在我想将此NSString转换为NSDATE

我尝试了以下

      NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingAllTypes error:&error];
      NSArray *matches = [detector matchesInString:datestring
                                     options:0
                                       range:NSMakeRange(0, [datestring length])];

    for (NSTextCheckingResult *match in matches) {
       if ([match resultType] == NSTextCheckingTypeDate) {
           dateObj =  [match date];
           break;
    }
}

================

我在Exif中看到的格式是2010:05:27 17:48:42 04:00

注意: - 是否有任何方法可以采用任何NSString格式并给出NSDATE对象

编辑

在nsdateformatter中,我们必须传递给定格式类型。我们可以使用一种方法,而不是可以从运行时确定字符串的日期格式,因为字符串可能具有不同的格式,具体取决于本地化或相机类型。

我认为最好的是,如果您可以创建一个用于操作日期的类,所以我更喜欢使用nsdateforamatter创建类似的方法:

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

您可以设置拥有的日期格式。希望这会有所帮助。

正如@cyrille所说,您必须使用 NSDateFormatter

NSString *myString = @"2010:05:27 17:48:42+0400";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy:MM:dd HH:mm:ssZZZ"];
NSDate *myDate = [dateFormatter dateFromString:myString];

NSDateFormatter:是将NSString转换为NSDate

的最佳方法
NSString *yourString = @"2016:10:13 17:48:42+0400";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy:MM:dd HH:mm:ssZZZ"];
NSDate *yourDate = [dateFormatter dateFromString:yourString];

最新更新