【发布时间】:2014-05-26 00:24:10
【问题描述】:
我目前正在 CoreData 中的 iOS 应用程序中保存日期。在 Core Data 中,我的日期属性是“日期”类型。在我的 NSManagedObjectSubclass 文件中,该属性的类型为:NSDate(这很好)。 Core Data 中的日期存储为:2014/05/16 14:54:51,当我在我的 SQLite3 导航器中检查实际值时,它以以下形式存储:
421959291.293972 为日期
如何获取上述日期值,有没有办法将其转换回形式:2014/05/16 14:54:51?我问这个是因为我试图通过 CSV 文件创建数据集,并希望确保我在 CSV 文件中输入的所有值都被 Core Data/SQLite3 正确转换为正确的格式。
【问题讨论】:
-
我相信 NSDate 是从一个固定的参考点(例如参见
-[NSDate timeIntervalSinceReferenceDate])以 NSTimeInterval(双精度)形式存储的。因此,从这个角度来看,您所看到的完全有道理。如果你 NSLog() 导入日期后的日期,你会以更友好的格式看到它们。您的问题来了,因为您直接在存储中查看它们,而这只是用于存储日期的表示形式。 -
我正在为我的应用程序创建测试数据,这就是为什么我想通过带有正确格式日期的 csv 文件预填充我的 SQLite3 数据库。通过将数据导出为 csv 文件并发现给我一个十进制格式的日期(即时间戳),我想知道是否有办法以这种格式创建日期(十进制/时间戳),用这个值填充我的数据库,并让它以正确的格式出现在我的应用程序中 (2014/05/16 14:54:51)?
-
阅读本文的任何人都感到困惑的是,您提到了 Core Data/SQLite3 - 它是什么?您正在处理核心数据数据库吗?在这种情况下,不推荐直接使用 SQLite 绕过它。你最好阅读这个文件并使用标准的 Core Data APIs 来输入它。但是,除此之外,我相信您在尝试使用 NSDate 时并没有完全了解它应该如何使用——我建议您观看最近关于日期/日历计算的 WWDC 会议并阅读编程指南。这个话题比许多人认为的要复杂。
-
核心数据是我在我的应用程序中使用的一部分,但是,我使用 SQLite3 数据库浏览器来查看存储在我的应用程序中的数据。这就是我能够查看原始数据的方式。
-
其他stackoverflow问题的重复stackoverflow.com/questions/10705062/…。
标签: ios csv core-data sqlite nsdate