实时:2015-02-17 04:48:06 +0000
错误时间:1472-02-17 04:48:06 +0000
初始日期格式化程序
dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZZ"
dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC+07:00")
代码查询
var dataTimeAddedWithSplit = split(dataTimeAdded){$0 == ","}
for var i = 0 ; i < dataTimeAddedWithSplit.count ; i++ {
var predicateTypeActivities : NSPredicate = NSPredicate(format: "timeAdded == %@", dateFormatter.dateFromString(dataTimeAddedWithSplit[i])! )!
fetchRequest.predicate = predicateTypeActivities
println(dateFormatter.dateFromString(dataTimeAddedWithSplit[i])!)
请帮帮我T^T
这个问题是在真机上出现的,但是我在IOS模拟器上使用没有发现问题。
最佳答案
我敢打赌,问题出在语言环境上。佛历2015-02-17为2558-02-17(年相差543年)。您的 1472 日期也巧合地偏移了 543 年(但相反)。这几乎就像一个 2015 年的日期被读入带有佛历的设备,然后被要求以公历格式显示日期。我在你的问题中没有看到确切的模式,但年份偏移表明类似的事情发生在这条线上的某个地方。
最重要的是,如果您正在创建/解释日期字符串以传输到网络服务或存储在数据库中,谨慎的做法是为两者使用通用格式(通常为此目的使用 ISO 8601 或 RFC 3339 日期)读取和写入日期。在 TN 1480 , Apple 建议指定 en_US_POSIX
的 locale
。
关于ios - NSDate 中超过一年的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555008/