使用日期和日期过滤数组

时间:2019-02-14 08:54:56

标签: swift database date-comparison

我正在使用FMDB数据库保存记录,在我的数据库中,这些东西包括名称,编号,日期,标题等。

我想按日期获取记录,就像2月2日至2月4日的所有记录一样,这是我正在尝试的代码,但是当我比较日期时,我也有时间,所以比较失败

是否可以将字符串转换为没有时间的日期?

  

输出:-:2019-12-01 19:00:00 +0000

我想转换为格式2019-12-01(yyyy-dd-mm)

let start = lblTo.text ?? ""
let end = lblFrom.text ?? ""
let dateFormat = "dd-MM-yyyy"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
dateFormatter.timeStyle = .short
dateFormatter.dateStyle = .short
dateFormatter.timeZone = TimeZone.current

let startDate = dateFormatter.date(from: start)
let endDate = dateFormatter.date(from: end)

我正在尝试从数据库中过滤记录

 for data in readingDataSouce{
            let readingDate = stringToDate(date:data.date ?? "")


            if readingDate > startDate! && readingDate < endDate!
                {

                }


        }


    func stringToDate(date:String) -> Date{
        let start = date
        let dateFormat = "dd-MM-yyyy"
        let dateFormatter = DateFormatter()
         dateFormatter.timeZone = TimeZone.current
        dateFormatter.dateFormat = dateFormat
        let startDate = dateFormatter.date(from: start)
        return startDate ?? Date()
    }

1 个答案:

答案 0 :(得分:0)

您正在使用timeStyle = .short,将其更改为.none

let end = lblFrom.text ?? ""
let dateFormat = "yyyy-dd-MM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .short
let correctDate = dateFormatter.string(from: end)