iphone - CoreData sqlite3 db - 使用 python 脚本填充时间戳列

标签 iphone python ios sqlite core-data

我有一个由 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/

相关文章:

ios - Xcode 8 和模拟器 10 上的 3D Touch

ios - 如何在 Objective C 中异步加载数据 UITableview 滚动和核心数据获取

iphone - 用于通过地名和/或 map 通过使用 Google Maps API 选择位置的 IOS/iPhone 示例代码?

iphone - 我应该在 ARC 中使用 nil

python - 在 matplotlib 中,为什么用细线绘图会更快?

python - 确定性 key 序列化

iphone - iOS:UIView 相对于 UIWindow 的起源

从另一个 python 脚本调用 python 脚本时,Python 日志记录挂起

ios - Ipad 2, iPad 3扫描SDK

ios - NULL 空操作在 GCC/Clang 上编译成什么?