当前位置:  开发笔记 > 数据库 > 正文

Objective-C和sqlite的DATETIME类型

如何解决《Objective-C和sqlite的DATETIME类型》经验,为你挑选了1个好方法。

我有一个sqlite3表,我试图映射到objective-C中的对象.该表的一个属性是'completed_at',它存储为DATETIME.

我想在我的objective-C类(继承自NSObject)上创建一个属性,该类将很好地映射到'completed_at'属性.

Objective-C有一个NSDate类型,但我不确定它是否会直接映射?



1> Hussain KMR ..:

我在这里只分享有关日期格式的核心内容,用于保存和检索演示数据.如果您对此代码段有任何问题,那么我将分享我用于项目的完整代码.

保存数据时,请像这样在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);

当您检索数据时,您必须编写以下代码:

    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)]];

现在你有一个NSDate类型的变量myDate,你可以用你的方式呈现:

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
    NSLog(@"My Date was : %@", [formatter stringFromDate:myDate]);

你必须要记住三件事:

    在您的SQLite日期字段中,类型应为DATETIME

    存储和检索时,日期格式应相同

    现在,您可以按照自己的方式显示,但遵循格式.下面给出了格式细节.

格式:

   '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

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有