【问题标题】:Filter array using to and from date使用 to 和 from 日期过滤数组
【发布时间】:2019-02-14 08:54:55
【问题描述】:

我正在使用 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()
    }

【问题讨论】:

  • 尝试使用 timeStyle = .none
  • 是的,我做了,然后它返回相同的 2019-02-13 19:00:00 +0000
  • 你能显示输出吗?
  • 替换我下面代码的最后一行,让 correctDate = dateFormatter.string(from: end)
  • 它以这种格式返回 15/02/2019 及其字符串我如何使用字符串过滤数组?

标签: swift database date-comparison


【解决方案1】:

您正在使用 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多