Swift-NSDate-删除部分日期
我有以下格式的日期Swift-NSDate-删除部分日期,swift,nsdate,Swift,Nsdate,我有以下格式的日期2015-02-22T20:58:16+0000 为了将其转换为NSDate,我找到了以下解决方案 var df = NSDateFormatter() df.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZ" var date = df.dateFromString(myDate) df.dateFormat = "eee MMM dd yyyy" var dateStr = df.stringFromDate(date!) 但我想从日期中删除
2015-02-22T20:58:16+0000
为了将其转换为NSDate,我找到了以下解决方案
var df = NSDateFormatter()
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZ"
var date = df.dateFromString(myDate)
df.dateFormat = "eee MMM dd yyyy"
var dateStr = df.stringFromDate(date!)
但我想从日期中删除+0000。我试图删除ZZZM,但应用程序崩溃
如何删除额外的+0000位数?我不建议在解析结果时删除时区。但是,如果您只想删除字符串,可以这样做:
let date = "2015-02-22T20:58:16+0000"
let display = date.substringToIndex(date.characters.indexOf("+")!)
这将给出您询问的结果:
如何删除额外的+0000位数
我不确定你的意思,因为生成的dateStr
确实删除了+0000
但是,让我们后退一步,考虑以<代码> 2015-02-22T20:58:16+ 0000 的格式解析日期字符串的正确方法。您应该使用
en_US_POSIX
的locale
,如中所述:
然后,当您要为最终用户格式化时,请将区域设置
重置回当前区域设置
:
dateFormatter.locale = NSLocale.currentLocale()
dateFormatter.dateFormat = "eee MMM dd yyyy"
let dateStr = dateFormatter.stringFromDate(date!)
然后,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
,而是使用尊重最终用户本地化设置的格式
let locale = NSLocale.currentLocale()
dateFormatter.locale = locale
dateFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("eeeMMMdyyyy", options: 0, locale: locale)
let dateStr = dateFormatter.stringFromDate(date!)