检查Objective-C中的日期格式

时间:2018-01-24 11:49:13

标签: ios objective-c date nsdate

我收到一个包含日期的字符串。我想检查它是否具有格式“dd / MM / yyyy”。现在我正在使用我在同一页面中找到的代码:

NSDate *date = [dateFormatter dateFromString:dateString];
if(date == nil) {
    correctFormat = false;
}

它适用于某些情况,但是例如,如果我输入“22-12-1996”而不是“22/12/1996”,它仍会创建日期。还有另一种方式是一致的吗?

1 个答案:

答案 0 :(得分:2)

NSDateFormatter处理字符串日期的格式。

  

NSDateFormatter的实例创建NSDate对象的字符串表示,并将日期和时间的文本表示转换为NSDate对象。

试试这个,看看:

// Set date format according to your string date format
// e.g.: For, 
// 22-12-1996 -> @"dd-MM-yyyy"
// 22/12/1996 -> @"dd/MM/yyyy"
// 1996-12-22 03:45:20 -> @"yyyy-MM-dd HH:mm:ss"

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd/MM/yyyy";
//dateFormatter.dateFormat = @"dd-MM-yyyy";

NSDate *date = [dateFormatter dateFromString:dateString];
if(date == nil) {
    correctFormat = false;
}
NSLog("Date: %@",date);
  

注意:日期格式中的每对字符都将相关日期组件与日期实例相关联。您可以使用日期字符串模式创建任何类型的日期格式。

以下是Apple的文档:Date Formatters

  
      
  • 日期(日): dd
  •   
  • 月: MM或MMM或MMMM
  •   
  • :yy或yyyy
  •   

以下是日期格式列表:Date Formats