检查Objective-C中的日期格式样式

时间:2016-02-08 05:48:01

标签: ios objective-c date nsdateformatter

我们如何检查我从API获取响应的格式的日期,以及根据格式获取日期从字符串转换日期的日期,但混淆是以两种格式yyyy-MM-dd'T'HH:mm:ss.SSS和{{1}获取日期有些包括yyyy-MM-dd'T'HH:mm:ss,有些则没有,请告诉我如何首先检查日期格式样式,然后根据它使用日期格式。

下面我将使用代码将字符串转换为我想要的格式。

SSS

寻找你的回复。

2 个答案:

答案 0 :(得分:2)

最初检查

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];
}

答案 1 :(得分:0)

将您的API响应Date作为字符串传递,并检查您的日期格式。如果它与任何甲酸盐不匹配,那么您可以返回任何其他您想要的格式。

- (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";

            }
        }
    }