首页 > 解决方案 > 来自旧数据库的 csv 转储的 nsdate

问题描述

我有一个来自 2013 年自制应用程序的旧文件 - sql lite

我想恢复数据,但由于旧的 Xcode 项目很旧,我正在重新创建一个功能较少的新应用程序,因为它们不再需要。

我可以打开旧的 sql lite 数据库并将表导出为 cvs 文件,我正在尝试将其导入新应用程序。

通常工作但我坚持日期信息。在旧应用程序中,这是一个 NSDate,而在新应用程序中,它也是一个 NSDate。在 csv 文件中它只是一个字符串 - 一个例子是

371401200

我不知道如何将其添加为日期,因为它不是“正常”日期字符串,因此字符串中的日期无法正常工作。

我怎样才能引入这些数据?

(业余爱好者编写的应用程序仅供家庭使用)

标签: objective-cxcodemacos

解决方案


该字符串很可能是 UNIX 时间戳(从 1970 年 1 月 1 日开始)。

你可以NSDate从字符串中得到一个

NSString *timeString = @"371401200";
NSTimeInterval timeStamp = timeString.doubleValue;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];

NSLog(@"%@", date); // 1981-10-08 15:00:00 +0000

或者它可能基于 Apple 的参考日期(从 2001 年 1 月 1 日开始)

NSString *timeString = @"371401200";
NSTimeInterval timeStamp = timeString.doubleValue;
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:timeStamp];

NSLog(@"%@", date); // 2012-10-08 15:00:00 +0000

推荐阅读