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

在iPhone应用程序中将日期持久化到SQLite3

如何解决《在iPhone应用程序中将日期持久化到SQLite3》经验,为你挑选了3个好方法。

我正在开发一个将数据保存到SQLite3数据库的iPhone应用程序.

对于我坚持的每一行,我希望包含"创建日期"和"最后修改日期"

我的问题是将这些信息存储在表格中的推荐方法是什么?

在我的应用程序中,属性表示为NSDate但我不确定如何在我的表中表示此信息.

似乎SQLite3提供了DATETIME类型,但是没有对如何解析此信息的本机理解.

任何帮助将非常感激.

提前致谢.



1> drewh..:

我通常使用双,类似于:

sqlite3_bind_double(statement, index, [dateObject timeIntervalSince1970]);

其中dateObject是NSDate*.然后,当从数据库中获取数据时,请使用

[NSDate dateWithTimeIntervalSince1970:doubleValueFromDatabase];



2> Marco..:

存储为UNSIGNED INT列中的典型C时间(例如time()返回的time_t/int值).转换像drewh说的NSDate:

- timeIntervalSince1970
- dateWithTimeIntervalSince1970:(double)value

除了存储为整数之外,除非您需要亚秒级粒度(通常,对于创建的/最后修改的,过度杀伤).无符号整数比双精度更小,更容易处理.虽然这在大多数桌面和Web应用程序中可能无关紧要,但它确实对iPhone有所帮助.每一点点都有帮助.

C-times的一个好处是,大多数人都没有意识到,他们是时区不可知的.如果您需要支持多个时区,这就派上用场了.



3> schwa..:

我转换为/来自ISO8601字符串:http://en.wikipedia.org/wiki/ISO_8601

比时间间隔更容易读取/破解.

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