我收到一个包含日期的字符串。我想检查它是否具有格式“dd / MM / yyyy”。现在我正在使用我在同一页面中找到的代码:
NSDate *date = [dateFormatter dateFromString:dateString];
if(date == nil) {
correctFormat = false;
}
它适用于某些情况,但是例如,如果我输入“22-12-1996”而不是“22/12/1996”,它仍会创建日期。还有另一种方式是一致的吗?
答案 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