【问题标题】:Sorting Core Data by date typed as NSString按输入为 NSString 的日期对核心数据进行排序
【发布时间】:2012-07-05 18:02:13
【问题描述】:

我从服务器获取了一堆 YYYY-MM-DD NSString 格式的日期,我们会立即将其粘贴到核心数据中进行访问。但是,我需要使用大于日期谓词的排序获取请求。当日期是字符串而不是日期对象时,如何说“日期大于 X”?

AKA,下面开始是 NSString,不是 NSDate

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(start <= %@) AND (name == %@)", currentTime, name];

【问题讨论】:

    标签: iphone core-data nsstring nsdate


    【解决方案1】:

    而不是将日期存储为字符串,然后必须对字符串进行排序,使用 NSDateFormatter 解析日期,然后将它们作为 NSDates 存储在核心数据中,然后您可以相对轻松地使用它们进行各种谓词。

    【讨论】:

    • 我们的数据对象中有超过 500k 的日期,我宁愿不要把它们全部从核心数据中取出,用 NSDateFormatter 输入它们并恢复它们。这是最后的手段。
    • @Eric 我同意 Jesse Crocker 的观点。您应该将日期作为 NSDate 存储在 coredata 数据库中。如果您有超过 50 万个日期,请创建一个快速脚本来转换日期(Mac 基础应用程序),方法是首先加载旧数据库,提取每个单独的对象,使用 NSDateFormatter 将字符串转换为日期,然后将其存储在新的数据库。
    • 我们尝试了 24 小时,找不到更好的选择,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多