Swift随着版本的升级,日期类都会有一点变化。所以各个版本的Swift日期和字符串的转换有所不同。
Swift 4
String转换为Date
var dateString = "2017-11-17"
var dateFormatter = DateFormatter()
// dateFormat需要和输入的字符串相匹配,否则返回nil
dateFormatter.dateFormat = "yyyy-MM-dd"
//`date(from:)` 返回的是可选类型
var dateFromString: Date? = dateFormatter.date(from: dateString)
Date转换为String
var formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
let date = Date()
let stringDate: String = formatter.string(from: date)
Swift 3
String to NSDate
var dateString = "2017-11-17"
var dateFormatter = DateFormatter()
// dateFormat需要和输入的字符串相匹配,否则返回nil
dateFormatter.dateFormat = "yyyy-MM-dd"
var dateFromString = dateFormatter.date(from: dateString)
NSDate to String
var formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
//其中dateFromString为上面例子的变量
let stringDate: String = formatter.string(from: dateFromString)
Swift3和Swift4不同点在于NSDate改为Date,且在字符串转换为日期时,Swift 4返回的是一个可选类型日期。