NSDate 中超过一年的错误
Error over year in NSDate
实时: 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){[=11=] == ","}
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 年的日期被读入带有佛历的设备,然后被要求以公历格式显示日期。我在你的问题中没有看到确切的模式,但年份偏移表明类似的事情发生在这条线上的某个地方。
最重要的是,如果您是 creating/interpreting 用于传输到 Web 服务或存储在数据库中的日期字符串,谨慎使用通用格式(通常使用 ISO 8601 或 RFC 3339 日期)目的)用于读取和写入日期。在 TN 1480 中,Apple 建议指定 locale
of en_US_POSIX
。
实时: 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){[=11=] == ","}
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 年的日期被读入带有佛历的设备,然后被要求以公历格式显示日期。我在你的问题中没有看到确切的模式,但年份偏移表明类似的事情发生在这条线上的某个地方。
最重要的是,如果您是 creating/interpreting 用于传输到 Web 服务或存储在数据库中的日期字符串,谨慎使用通用格式(通常使用 ISO 8601 或 RFC 3339 日期)目的)用于读取和写入日期。在 TN 1480 中,Apple 建议指定 locale
of en_US_POSIX
。