gpt4 book ai didi

ios - 如何查询 Realm 中的日期属性?

转载 作者:行者123 更新时间:2023-11-30 10:53:10 25 4
gpt4 key购买 nike

我有一个 Realm 数据库,其中有一个对象“Events”,其属性名称为“occasion”,类型为字符串,属性名称为“venue”,类型为字符串,另一个属性名称为“date”,类型为 Date()。我的问题是我们如何查询日期与今天(当天)相同的场合。我已尝试使用此代码来使用日期过滤器检索场合,它确实有效:

let date = Date()
let dateFormatter = DateFormatter()
// dateFormatter.dateFormat = "dd/MM/yyyy"
dateFormatter.dateFormat = "d MMM yyyy"
let stringDate = dateFormatter.string(from: date)

todayEvent = realm.objects(Events.self).filter("date = '\(stringDate)'").sorted(byKeyPath: "venue", ascending: true)

即使日期以 dd/MM/yyyy 格式保存,Realm 数据库中的日期也会显示“2019 年 1 月 17 日上午 12:00:00”格式的日期。我尝试过更改日期格式,但仍然行不通。或者,当我首先声明日期属性时,是否需要设置日期属性的格式?如果是这样,我该如何在 Realm 类对象中执行此操作?我已经尝试过,但它给出了一个错误。我现在被困在这里了。请帮忙

这就是我将数据保存到 Realm 数据库的方式:

@IBAction func addNewEventButtonPressed(_ sender: UIButton) {



let newDataEntry = Events()

newDataEntry.occasion = occasionTextFile.text!


let dateString = dateTextField.text!
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateFromString = dateFormatter.date(from: dateString)

newDataEntry.date = dateFromString!

do {
try realm.write {
realm.add(newDataEntry)
}
} catch {
print("Error saving data \(error)")
}


}

最佳答案

根据Realm docs (强调我的):

The comparison operators ==, <=, <, >=, >, !=, and BETWEEN are supported for Int, Int8, Int16, Int32, Int64, Float, Double and Date property types

因此,以下内容应该有效:

let date = Date()
todayEvent = realm.objects(Events.self)
.filter("date == %@", date)
.sorted(byKeyPath: "venue") // sorted in ascending order by default

关于ios - 如何查询 Realm 中的日期属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54230830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com