【问题标题】:iPhone SQLite3 Datetime QuestioniPhone SQLite3 日期时间问题
【发布时间】:2011-08-14 20:44:55
【问题描述】:

存储日期的最佳格式是什么,以便以后使用 Objective-C 日期格式化程序轻松格式化?日期将以 unix 时间戳开始,然后变成最容易使用的任何格式,存储在 SQLite3 db 中,然后使用 dateformatter 检索和操作。我可以只使用时间戳吗?还是将其转换为 YYYY/mm/dd 或类似的东西更好。

【问题讨论】:

    标签: iphone objective-c sqlite datetime timestamp


    【解决方案1】:

    我认为您会希望以 YYYYMMDDHHMMSS 格式存储它以便于排序。

    你是直接写sqlite代码吗?为什么不使用诸如 Core Data 之类的托管数据框架(底层数据存储是 sqlite),会让您的生活更轻松。这个小例子使用 NSSortDescriptor 按 FileDate 列排序。 AssetItem 是一个 NSManagedObject 子类

    NSFetchRequest *nsrequest = nil;
    NSEntityDescription *entity = nil;
    
    NSError *error; 
    
    // check to see if the scene exists (could have been downloaded previously)
    nsrequest = [[NSFetchRequest alloc] init];
    entity = [NSEntityDescription entityForName:@"AssetItem" inManagedObjectContext:managedObjectContext];          
    [nsrequest setSortDescriptors:[NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"FileDate" ascending:NO] autorelease]]];     
    [nsrequest setEntity:entity];
    
    NSArray *objs = [[managedObjectContext executeFetchRequest:nsrequest error:&error] retain];
    
    for (AssetItem *item in objs) {
        NSLog(@"file date is: %@", [item FileDate]);
    }
    [objs release];
    [nsrequest release]
    

    ;

    您可以使用内置的 Xcode 数据建模工具进行大量建模。

    【讨论】:

    • 我从一个主 MySQL 数据库中获取数据,将其缩减为一个压缩的小型 SQLite 数据库,必要时通过下载提供该数据,然后使用 FMDB 与 SQLite 数据库一起工作。我再也不会在 Obj-C 中使用原生 SQLite 调用了。
    • 你的数据模型会改变吗?还是只是数据?如果是后者,您总是可以在 Core Data 中为您的 sqlite 数据库建模,然后从 iPhone 中获取生成的空 .sqlite db 文件并在服务器端进行数据翻译并下载翻译后的 .sqlite db。
    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2014-09-04
    • 2019-11-25
    • 2011-11-21
    相关资源
    最近更新 更多