【问题标题】:Check date format in Objective-C在 Objective-C 中检查日期格式
【发布时间】:2018-07-03 11:00:34
【问题描述】:

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

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

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

【问题讨论】:

  • NSDateFormatter 根据您使用 dateFormat 传递的 StringFormat 工作

标签: ios objective-c date nsdate


【解决方案1】:

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

【讨论】:

  • 你为什么使用“dd-MM-yyyy”?那是我不想要的。另外,用“dd/MM/yyyy”改变它是我现在正在做的,我不是吗?有什么区别?
  • 设置日期格式模式,匹配你的字符串日期。
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
相关资源
最近更新 更多