【发布时间】:2016-09-01 10:50:07
【问题描述】:
我正在开发 iOS 应用程序并从 Web 服务获取日期为整数值。我正在使用以下方法将整数转换为日期字符串。
func formatDate(timeInMiliSeconds: Int) -> String {
let millse = timeInMiliSeconds
let date = NSDate(timeIntervalSince1970:Double(millse) / 1000.0)
let formatter = NSDateFormatter()
formatter.dateFormat = "dd MMM yyyy E"
formatter.locale = NSLocale.currentLocale()
let dateString = formatter.stringFromDate(date)
return dateString
}
当我在运行 iOS 9.3.4 的 iPhone 6S 上运行应用程序时。它将日期显示为"01 Sep 2016 Thu"。 iPhone 6S 显示预定日期。
当我将此应用程序构建到运行 iOS 9.3.4 的 iPad 2 时,我是如何做到的。它显示日期为"27 Dec 1969 Sat"。
有人遇到过这个问题吗?帮助将不胜感激。
【问题讨论】:
-
如果两个设备上的用户语言不同,那么
local对象就不同,因此输出字符串的生成方式也不同。 -
timeInMiliSeconds 的值是多少?您是否仔细检查过两台设备上的内容是否相同?
-
@MartinR 是的,我检查了 timeInMiliSeconds。两个设备中的值相同,但设备中的日期字符串不同。
-
@MartinR 感谢您的评论。终于搞清楚是什么问题了。我正在获取并将值转换为 Int 并且在 64 位设备中,设备能够处理该值,但在 32 位设备中,Int 很小,无法保存该值。所以我将 Int 更新为 uInt。
标签: ios swift nsdate nsdateformatter