jer*_*nto 7 sqlite objective-c
我有一个sqlite3表,我试图映射到objective-C中的对象.该表的一个属性是'completed_at',它存储为DATETIME.
我想在我的objective-C类(继承自NSObject)上创建一个属性,该类将很好地映射到'completed_at'属性.
Objective-C有一个NSDate类型,但我不确定它是否会直接映射?
Hus*_*tee 28
我在这里只分享有关日期格式的核心内容,用于保存和检索演示数据.如果您对此代码段有任何问题,那么我将分享我用于项目的完整代码.
保存数据时,请像这样在sql语句中绑定日期值:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString=[dateFormat stringFromDate:[NSDate date]];
sqlite3_bind_text(saveStmt, 1, [dateString UTF8String] , -1, SQLITE_TRANSIENT);
Run Code Online (Sandbox Code Playgroud)
当您检索数据时,您必须编写以下代码:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *myDate =[dateFormat dateFromString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]];
Run Code Online (Sandbox Code Playgroud)
现在你有一个NSDate类型的变量myDate,你可以用你的方式呈现:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
NSLog(@"My Date was : %@", [formatter stringFromDate:myDate]);
Run Code Online (Sandbox Code Playgroud)
你必须要记住三件事:
格式:
'dd' = Day 01-31
'MM' = Month 01-12
'yyyy' = Year 2000
'HH' = Hour in 24 hour
'hh' = Hour in 12 hour
'mm' = Minute 00-59
'ss' = Second 00-59
'a' = AM / PM
Run Code Online (Sandbox Code Playgroud)
我对 Objective-C 的经验为零,但我通过谷歌搜索找到了 Apple 的NSDate Class Reference 。通过链接页面上提供的信息,您应该能够弄清楚如何在 Objective-C 中操作 32 位纪元时间,并且这在 SQLite 中可以很好地工作。我可能会将 Completed_at 列创建为 32 位时间的 INTEGER 类型。
SQLite确实更喜欢儒略日期,它是浮点数。我还没有找到任何文档来解释如何强制 NSDate 类与 Julians 一起工作。
timeIntervalSince1970看起来很有趣。