Swift日期和字符串互相转换(Swift 3/Swift 4)

时间:2022-06-01 12:56:38

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返回的是一个可选类型日期。