我在我的项目中使用核心数据。数据库是 sqlite 并且有用于存储具有数据类型“时间戳”的“生日”的列。
现在,我想在其中插入一些记录,并且我有人类可读格式的日期,例如“1809-06-17”。
如何将此日期转换为时间戳,以便从数据库中获取此日期。
我尝试使用 python 脚本进行一些转换,但得到了不同的结果。
有什么简单的方法可以做到这一点?请帮我。
您可以将日期存储为 TEXT,而不必担心与时间戳之间的转换。
要将时间戳转换为 NSDate,请使用:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];
NSLog(@"%@", date);
字符串到 NSDate 到时间戳:
NSDate *date = [NSDate dateWithString:stringWithDate];
NSTimeInterval timeStamp = [date timeIntervalSince1970];
SQLite 没有 Date 的数据类型,它只是根据您的选择将其存储在 INT(Unix 时间)、REAL(儒略日数)或 TEXT(ISO8601 字符串)中。
因此,您可以将日期以已有的格式(“1809-06-17”)存储为 TEXT 列,或者使用上述方法将日期作为时间戳存储在 INT 列中以进行双向转换。
SQLite 日期和时间函数:SQLite 日期和时间 SQLite DATATYPES:SQLite 数据类型 doc SQLite 官方网站和文档:SQLite Home
希望你能解决你的问题
最后我得到了我需要的解决方案。
NSDateFormatter *df = [[NSDateFormatter alloc]init]; [df setDateFormat:@"yyyy-MM-dd"]; NSDate * 过去 = [df dateFromString:@"1971-04-06"]; NSTimeInterval oldTime = [过去 timeIntervalSinceDate:[df dateFromString:@"2001-01-01"]]; NSString * unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime]; NSLog(@"unixTime = %@",unixTime);