【发布时间】:2011-08-14 20:44:55
【问题描述】:
存储日期的最佳格式是什么,以便以后使用 Objective-C 日期格式化程序轻松格式化?日期将以 unix 时间戳开始,然后变成最容易使用的任何格式,存储在 SQLite3 db 中,然后使用 dateformatter 检索和操作。我可以只使用时间戳吗?还是将其转换为 YYYY/mm/dd 或类似的东西更好。
【问题讨论】:
标签: iphone objective-c sqlite datetime timestamp
存储日期的最佳格式是什么,以便以后使用 Objective-C 日期格式化程序轻松格式化?日期将以 unix 时间戳开始,然后变成最容易使用的任何格式,存储在 SQLite3 db 中,然后使用 dateformatter 检索和操作。我可以只使用时间戳吗?还是将其转换为 YYYY/mm/dd 或类似的东西更好。
【问题讨论】:
标签: iphone objective-c sqlite datetime timestamp
我认为您会希望以 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 数据建模工具进行大量建模。
【讨论】: