如何在Swift

时间:2016-03-13 20:23:16

标签: ios swift nsdate nsdateformatter

我想以这种格式阅读日期: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。然后我可以根据我是在阅读日期还是显示它来使用每一个。这会是解决问题的更好方法吗?

1 个答案:

答案 0 :(得分:0)

如果您担心效率,可以使用两个NSDateFormatters,每个转换一个,并且只设置一次,可能是静态变量。显然,最好测量它实际需要多长时间。