我想以这种格式阅读日期:2016-03-15T17:30:00-04:00
并显示如下:3月15日星期二,下午5:30
我目前有以下代码:
var strDate = "2016-03-15T17:30:00-04:00"
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale.currentLocale()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
let dateObj = dateFormatter.dateFromString(strDate)
dateFormatter.dateFormat = "EEEE, MMMM dd, 'at' h:mm a"
print(dateFormatter.stringFromDate(dateObj!))
上面的代码可以工作,但是我将NSDateFormatter对象的dateFormat设置了两次 - 一次将字符串转换为NSDate对象,另一次将日期对象显示为字符串。
这是使用NSDateFormatter的最佳方式还是有一种方法可以实现,而无需设置dateFormat两次?
另一种方法是让我有两个NSDateFormatter对象,每个对象都有一个不同的dateFormat。然后我可以根据我是在阅读日期还是显示它来使用每一个。这会是解决问题的更好方法吗?
答案 0 :(得分:0)
如果您担心效率,可以使用两个NSDateFormatters,每个转换一个,并且只设置一次,可能是静态变量。显然,最好测量它实际需要多长时间。