iPhone SQLite3日期时间问题

时间:2011-04-28 16:06:11

标签: iphone objective-c sqlite datetime timestamp

存储日期的最佳格式是什么,以便以后使用Objective-C dateformatter轻松格式化?日期将作为unix时间戳开始,然后成为最容易使用的格式,存储在SQLite3数据库中,然后使用dateformatter检索和操作。我可以使用时间戳吗?或者将它转换成YYYY / mm / dd或者沿着这些线条的东西更好。

1 个答案:

答案 0 :(得分:2)

我认为您希望以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数据建模工具进行大量建模。