我正在使用SwiftDate框架(请参见下面的链接)https://github.com/malcommac/SwiftDate
我想在当前地区/本地/时区中打印日期和时间。我可以通过以下代码而不使用SwiftDate来实现:
DateFormatter.localizedString(from: Date(), dateStyle: .short, timeStyle: .short)
由于,SwiftDate提供了共享的日期格式器。我想知道SwiftDate是否可以实现同样的效果。
我尝试了predrag-samardzic代码,它起作用了。既然有两种选择(可以完成相同的工作),一种可以使用NSDateFormatter,另一种可以使用SwiftDate,我想对它们进行性能分析以查看哪个更好。这是我用来剖析它们的代码:
func testNSDateFormatter() {
for _ in 1...10000 {
print("\(Date().toLocalizedString())")
}
}
func testSwiftDate() {
for _ in 1...10000 {
print("\(Date().localizedDate.toString(.dateTime(.short)))")
}
}
extension Date {
func toLocalizedString(dateStyle: DateFormatter.Style = .short, timeStyle: DateFormatter.Style = .short) -> String {
return DateFormatter.localizedString(from: self, dateStyle: dateStyle, timeStyle: timeStyle)
}
var localizedDate: DateInRegion {
return self.in(region: Region(calendar: Calendar.current, zone: Zones.current, locale: Locale.current))
}
}
这是分析器的屏幕截图。
分析的结果:
NSDateFormatter-773x SwiftDate-2674x
NSDateFormatter比SwiftDate快约3.45倍。基于以上所述,我建议您在SwiftDate上使用NSDateFormatter。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句