为啥 NSDate() 在 CoreData 中存储一个奇怪的值

Posted

技术标签:

【中文标题】为啥 NSDate() 在 CoreData 中存储一个奇怪的值【英文标题】:Why does NSDate() store a strange value in CoreData为什么 NSDate() 在 CoreData 中存储一个奇怪的值 【发布时间】:2014-10-25 01:20:22 【问题描述】:

我现在使用 NSDate() 将日期存储到 CoreData:

    sampleSwim.date = NSDate()

其中 sampleSwim 是一个由 xcdatamodeld 文件自动生成的类支持的 NSManagedObject。在该模型中,日期是 Date 类型。在 NSManagedObject 类中,它显示为 NSDate。

由于某种原因,我找回了这个值:

2014-10-297 05:07:57

我已经得到了相当多的样本。这是来自控制台。为什么会这样?

这就是我记录它(和阅读它)的方式:

var myWorkout: Swim = self.workouts[indexPath!.row] as Swim
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-DD hh:mm:ss"
let date = dateFormatter.stringFromDate(myWorkout.date as NSDate)
println(date)

谢谢

【问题讨论】:

【参考方案1】:

你应该使用这种格式:

dateFormatter.dateFormat = "yyyy'-'MM'-'dd HH':'mm':'ss"
DD 是“一年中的一天” hh 是 12 小时格式 YYYY 基于“一年中的一周”。

这是文档:Date Format Patterns

【讨论】:

谢谢,这是新的吗?我想我以前从未见过这种格式。 我不这么认为。这个苹果文档中使用了类似的:developer.apple.com/library/ios/documentation/Cocoa/Conceptual/…

以上是关于为啥 NSDate() 在 CoreData 中存储一个奇怪的值的主要内容,如果未能解决你的问题,请参考以下文章

NSDate 在 CoreData 中被保存为时间戳

从 NSDate() 保存一个日期,在 CoreData 的末尾没有 +0000

CoreData 中的 NSDate 是不是封装了时区?

搜索 CoreData 以匹配 NSDate - Swift

CoreData 按 NSDate 排序不起作用?

检索未包含在 CoreData 请求结果中的第二天