You ask:
如何删除多余的+0000数字?
我不确定你的意思,因为结果dateStr
does有+0000
已删除。
但让我们退后一步,考虑解析以下格式的日期字符串的正确方法:2015-02-22T20:58:16+0000
。你应该使用locale
of en_US_POSIX
如中所述Apple 技术问答 1480 https://developer.apple.com/library/mac/qa/qa1480/_index.html:
let myDate = "2015-02-22T20:58:16+0000"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
let date = dateFormatter.dateFromString(myDate)
当您想要为最终用户设置格式时,请重置locale
回到currentLocale
:
dateFormatter.locale = NSLocale.currentLocale()
dateFormatter.dateFormat = "eee MMM dd yyyy"
let dateStr = dateFormatter.stringFromDate(date!)
The dateStr
然后变成:
2015 年 2 月 22 日星期日
或者,也许更好的是,为了更好的本地化行为,使用dateFormatFromTemplate
:
let locale = NSLocale.currentLocale()
dateFormatter.locale = locale
dateFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("eeeMMMdyyyy", options: 0, locale: locale)
let dateStr = dateFormatter.stringFromDate(date!)
在美国,它将显示如上,但在英国它将显示为:
2015 年 2 月 22 日,星期日
或者使用标准之一dateStyle
如果这对你有用的话。但我通常建议不要使用硬编码dateFormat
,而是使用尊重最终用户本地化设置的格式。