我想将NSString转换为NSDate。
问题是我正在从图像中读取提供NSString值的exif信息。 现在我想将此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中,我们必须传递给定的格式类型。我们是否可以使用一种方法来确定运行时字符串中的日期格式,因为字符串可能具有一些不同的格式,具体取决于本地化或相机类型。
答案 0 :(得分:2)
我认为最好的情况是如果你可以创建一个只是用Dates操作的类,所以我更愿意使用NSDateForamatter创建一个类似的方法:
+ (NSDate *)getDateFromStringDate:(NSString *)stringDate {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"];
return [dateFormat dateFromString:stringDate];
}
您可以在此设置日期格式。 希望这会有所帮助。
答案 1 :(得分:1)
正如@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];
答案 2 :(得分:0)
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];