如何在 Swift 中优化使用 NSDateFormatter
How to optimally use NSDateFormatter in Swift
我想阅读以下格式的日期: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。然后我可以根据我是在阅读日期还是在显示日期来使用每一个。这是解决问题的更好方法吗?
如果担心效率,可以使用两个 NSDateFormatters,每次转换一个,并且只设置一次,可能作为静态变量。显然,最好测量实际需要多少时间。
我想阅读以下格式的日期: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。然后我可以根据我是在阅读日期还是在显示日期来使用每一个。这是解决问题的更好方法吗?
如果担心效率,可以使用两个 NSDateFormatters,每次转换一个,并且只设置一次,可能作为静态变量。显然,最好测量实际需要多少时间。