Ios 检查Objective-C中的日期格式样式
我们如何检查从API获得响应的日期格式以及从字符串中根据格式转换日期的日期格式,但混淆的是以两种格式获取日期,Ios 检查Objective-C中的日期格式样式,ios,objective-c,date,nsdateformatter,Ios,Objective C,Date,Nsdateformatter,我们如何检查从API获得响应的日期格式以及从字符串中根据格式转换日期的日期格式,但混淆的是以两种格式获取日期,yyyy-MM-dd'T'HH:MM:ss.SSS和yyyy-MM-dd'T'HH:MM:ss有些包括SSS,有些则不是,请告诉我如何首先检查日期格式样式,然后根据该样式使用日期格式 下面我将使用代码将字符串转换为所需的格式 NSString *dateStr = @"2016-01-18T13:28:06.357"; NSDateFormatter *formatter = [[NSD
yyyy-MM-dd'T'HH:MM:ss.SSS
和yyyy-MM-dd'T'HH:MM:ss
有些包括SSS
,有些则不是,请告诉我如何首先检查日期格式样式,然后根据该样式使用日期格式
下面我将使用代码将字符串转换为所需的格式
NSString *dateStr = @"2016-01-18T13:28:06.357";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [formatter dateFromString:dateStr];
正在查找您的响应。将API响应
日期作为字符串传递,并检查日期的格式。如果它不匹配任何格式,那么您可以返回您想要的任何其他格式
- (NSString*) isFirstTypeDate: (NSString*) theString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *dateFromString = [NSDate date];
dateFromString = [dateFormatter dateFromString:theString];
if (dateFromString !=nil) {
return @"yyyy-MM-dd'T'HH:mm:ss.SSS";
}
else {
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
dateFromString = [dateFormatter dateFromString:theString];
if (dateFromString !=nil) {
return @"yyyy-MM-dd'T'HH:mm:ss";
}else{
return @"Default Date formate you want";
}
}
}
初步检查
NSDate *date;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// Initially check like 2016-01-18T13:28:06.357
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
// it returns the date ,
date = [formatter dateFromString:dateStr];
// check if date is empty or
if(date == nil) {
// add the another date format
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
date = [formatter dateFromString:dateStr];
}
不要只是张贴代码。解释你的答案是如何解决问题的。谢谢@rmaddy的建议。:)尝试一种格式。如果失败,请尝试其他格式。您认为这是一个好的解决方案吗?如果日期格式也可以是其他格式,那么我必须添加另一种格式。@Aleem--但您的条件是基于我实现的两种格式,仅满足两种格式