【问题标题】:How to check valid Date() in Swift如何在 Swift 中检查有效的 Date()
【发布时间】:2016-10-26 12:04:14
【问题描述】:

在使用 SQL 查询之前如何检查日期是否有效

request.predicate = NSPredicate (format: "% @ <= AND myDate% @> = myDate" startDate, endDate)

闰年出现错误,例如 2016 年 2 月 30 日。

// code form comment...
let startDate:NSDate = dateFormatter.dateFromString("2016-10-01")!
let endDate:NSDate = dateFormatter.dateFromString("2016-10-29")!

【问题讨论】:

  • 2 月 30 日永远不存在。即使在闰年,2 月也只能到 29 日。就 CoreFoundation 而言,使用 2 月 30 日的日期与使用 4 月 192 日的日期没有什么不同。
  • 让 startDate:NSDate = dateFormatter.dateFromString("2016-10-01")!让 endDate:NSDate = dateFormatter.dateFromString("2016-10-29")!
  • 误会对不起....该评论确实已从应用程序中删除
  • 我找到了这段代码

标签: swift date nsdate


【解决方案1】:

DateFormatterdate(from:) 方法生成的日期的返回值是可选的。如果返回nil,则日期无效,否则有效。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

if let date = dateFormatter.date(from:"2016-02-30") {
    print(date) // if this prints date is valid
}
else {
    print("Date is Invalid") // if this prints date is invalid
}

Date 不能使用超出实际日历日期范围的无效日期字符串进行实例化。

如果您要问的是某个日期是否介于其他两个日期之间,请参阅此处:https://stackoverflow.com/a/40057117/1694526

【讨论】:

    【解决方案2】:

    使用 DateFormatter 类...它可以用来检查任何字符串是否是有效的日期,因此可以将字符串转换为nsdata。

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 1970-01-01
      • 2021-03-21
      • 2019-10-28
      • 1970-01-01
      • 2011-02-11
      • 2015-11-26
      • 2011-01-14
      相关资源
      最近更新 更多