gpt4 book ai didi

ios - Swift核心数据NSFetchRequest谓词可获取日期时间

转载 作者:行者123 更新时间:2023-12-01 19:29:32 25 4
gpt4 key购买 nike

我有一个名为UVHour的数据库表,其结构如下
UVHour
我的应用程序将通过如下所示的JSON填充UVHour表

[
{
"ORDER": 1,
"DATE_TIME": "SEP/04/2020 04 AM",
"UV_VALUE": 0
},
{
"ORDER": 2,
"DATE_TIME": "SEP/04/2020 05 AM",
"UV_VALUE": 0
}
]

当前NSFetchRequest
static var uvIndexNowRequest: NSFetchRequest<UVHour>
{
let dateTimeNow = Date()
let formatter = DateFormatter()
formatter.dateFormat = "MMM/d/yyyy hh a"
let dateHourStr = formatter.string(from: dateTimeNow)

let request: NSFetchRequest = UVHour.fetchRequest()

request.sortDescriptors = [NSSortDescriptor(key: "order", ascending: true)]

// Below code will throw 'NSInvalidArgumentException', reason: 'Unable to parse the format string "date_time == Sep/4/2020 08 PM"
// request.predicate = NSPredicate(format: "date_time == \(dateHourStr)")

return request
}
问题
如何编写一个谓词,以获取与当前日期和当前时间匹配的UVHour?
示例
假设当前日期是2020年9月4日04:10 AM。
基于上述JSON,我将获取以下的UVHour
[
{
"ORDER": 1,
"DATE_TIME": "SEP/04/2020 04 AM",
"UV_VALUE": 0
}
]

我怎样才能做到这一点?

最佳答案

我能够更新 uvIndexNowRequest 来找到我的解决方案。见下面的代码

static var uvIndexNowRequest: NSFetchRequest<UVHour>
{
let dateTimeNow = Date()

let formatter = DateFormatter()
formatter.timeZone = .current
formatter.dateFormat = "MMM/d/yyyy hh a"

// Find date String from 'formatter.dateFormat'
let dateHourStr = formatter.string(from: dateTimeNow)

// Get date from dateHourStr
let someDateTimeOpt = formatter.date(from: dateHourStr)

let request: NSFetchRequest = UVHour.fetchRequest()

request.sortDescriptors = [NSSortDescriptor(key: "order", ascending: true)]

if let someDate = someDateTimeOpt {
request.predicate = NSPredicate(format: "date_time == %@", someDate as CVarArg)
}

return request
}

关于ios - Swift核心数据NSFetchRequest谓词可获取日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63749316/

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