检查Objective-C中的日期格式

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

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

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

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

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

试试看,看看:

 // Set date format according to your string date format // eg: 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

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