【问题标题】:Storing dates in CoreData - Convert date string to NSTimeInterval?在 CoreData 中存储日期 - 将日期字符串转换为 NSTimeInterval?
【发布时间】:2016-02-01 08:28:13
【问题描述】:

所以我想将日期存储在我的 CoreData 实体中,并且模型指示该字段应该是 NSTimeInterval。不知道为什么它不是 NSDate 虽然 NSTimeInterval 听起来......奇怪。

从我的 JSON 数据源中,我有以下字符串:“2016-01-28T23:20:00”,我不知道如何将其转换为 NSTimeInterval。一旦我找出正确的格式,我就可以将其转换为 NSDate,但这对我没有多大好处。

谢谢!

【问题讨论】:

  • 字符串具有标准的 ISO8601 格式,这是我认为的最佳选择
  • 但是如何将其转换为 NSTImeInterval 格式以存储在 Core Data 中?
  • 请参阅stackoverflow.com/a/33605000/1187415,了解 NSDate 和 NSTimeInterval 之间的转换,了解 Core Data 标量属性。 (但您也可以将托管对象属性定义为 NSDate。)
  • @Zygote 无论如何,您必须将字符串转换为 NSDate... ;-)
  • 确实如此。知道如何将 ISO8601 字符串转换为 NSDate 吗? :)

标签: ios swift core-data


【解决方案1】:

您可以将NSDate直接存储在CoreData中。

更新

如果您使用的是标量属性,请像这样转换:

// `NSTimeInterval` -->  `NSDate`: 
var date = NSDate(timeIntervalSinceReferenceDate: 123)

// `NSDate` -->  `NSTimeInterval`: 
var timeInterval = date.timeIntervalSinceReferenceDate

【讨论】:

  • 只要您使用标量属性(就像我正在做的那样),该类型就会使其成为 NSTimeInterval。
猜你喜欢
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多