我有一个由 sqllite 数据库支持的核心数据模型。我想用一些初始数据填充数据库。
到目前为止,我一直在使用 Python 来执行此操作,并且运行良好。唯一不起作用的是插入日期。我了解 coredata 以纪元格式存储日期,因此我目前通过 Python 像这样插入它们:
time.mktime(datetime(2012, 7, 1, 12, 30, 30).timetuple())
但是,当通过 coredata 加载数据时,这并没有给我正确的日期。关于如何格式化日期以便通过 coredata 正确读取它有什么想法吗?
*注意: 我知道大多数人建议通过使用相同模型的小型应用程序而不是使用 Python 脚本来执行此操作,但我发现 Python 语法对于构建和插入大量对象而言更简洁。
例如 我可以像这样调用插入数据的方法:
insertData(con, 1, 1, 'Data 1', 'Description')
与 Objective-C 及其冗长的方法调用相比:
[self insertdata withCon:con id: 1 i2:1 val:@"Data 1", Desc:@"Description"];
最佳答案
Core Data 似乎使用 2001 年 1 月 1 日,GMT 作为引用日期(与 NSDate
方法 timeIntervalSinceReferenceDate
相同)而不是 1970,因为 mktime
Python 中的函数,所以你必须根据它来计算你的时间戳。
当然这完全没有记录,我同意 dpjanes' answer这种方法通常不是一个好主意。
如果你真的真的想这样做,你可以像这样在 Python 中构造一个合适的时间戳:
import time
from datetime import datetime
ref = time.mktime(datetime(2001, 1, 1, 0, 0, 0).timetuple())
now = time.time() - ref
关于iphone - CoreData sqlite3 db - 使用 python 脚本填充时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375422/