从核心数据属性中读取日期
Posted
技术标签:
【中文标题】从核心数据属性中读取日期【英文标题】:Read date from Core Data attribute 【发布时间】:2021-01-14 16:34:29 【问题描述】:我有一个由 Core Data 生成的 sqlite 数据库。
我需要使用 php 读取字段类型 Date 并将其转换为 DateTime。 Core Data 中的字段具有如下值:631170000
。
<attribute name="date" attributeType="Date" defaultDateTimeInterval="-978278400" usesScalarValueType="NO"/>
如何将此defaultDateTimeInterval
double 值转换为日期?
【问题讨论】:
Unix时间戳? unixtimestamp.com/index.php 这是一个php问题还是一个swift问题? 如果字段使用 Date 类型,它应该自动转换为 Swift Date。你是如何获得这个价值的? 【参考方案1】:如果您正在阅读 PHP 中的 Core Data 持久存储,那么您会遇到困难,因为这些文件并非旨在直接读取。 Core Data 不仅仅是一个 SQLite 包装器,它在 SQLite 中使用的表结构和数据类型没有文档记录,可能不是您所期望的。如果完全可以使用 Core Data 读取数据,然后将其发送到运行 PHP 的服务器,那么就这样做,因为否则您将最终对 Core Data 的部分进行逆向工程,因为您直接读取的文件并非旨在以这种方式使用。
日期是较简单的情况之一。 Core Data 将它们保存为自 UTC 2000 年 12 月 31 日午夜以来的秒数。这不是 Unix 时间戳,但它是相同的想法,但参考日期不同。
可能需要转换一个 PHP 库或一些开源代码。如果不是,Apple 的参考日期和 Unix 时间戳之间的差异是 978307200 秒。要转换问题中的数字,请添加 631170000 + 978307200 并将结果视为 Unix 时间戳。
但实际上,如果有任何方法可以使用 Core Data 来读取和转换数据,那么请改为这样做,您会省去麻烦。
【讨论】:
以上是关于从核心数据属性中读取日期的主要内容,如果未能解决你的问题,请参考以下文章
PowerShell - 读取 SharePoint 文件属性(修改日期等)
我java后台从数据库中读取到的时间日期如何在前台进行计算?