Swift:将普通string转换为YYYY-MM-DDtypesstring?
我需要将一个简单的string转换为DateFormatterstring,以便我可以将它传递给NSDateFormatter.dateFromString.
的参数NSDateFormatter.dateFromString.
我有一个string
let a = "20160114"
我想把它转换成"2016-01-14"
怎么样?
对于只将string转换为给定的格式,你可以使用swift 插入 sunction
var a = "20160114" a.insert("-", atIndex: a.startIndex.advancedBy(4)) a.insert("-", atIndex: a.startIndex.advancedBy(4+1+2)) print(a)
打印:“2016-01-14”
let dateString = "20160114" let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyyMMdd" let dateObj = dateFormatter.dateFromString(dateString) dateFormatter.dateFormat = "yyyy-MM-dd" print("Dateobj: \(dateFormatter.stringFromDate(dateObj!))")
let dateformattor = NSDateFormatter() dateformattor.dateFormat = "yyyyMMdd" dateformattor.timeZone = NSTimeZone.localTimeZone() // here just pass your string that you want to convert into date. let dt = "20160114" let dt1 = dateformattor.dateFromString(dt as String) dateformattor.dateFormat = "yyyy-MM-dd" dateformattor.timeZone = NSTimeZone.localTimeZone() print("Time :",dateformattor.stringFromDate(dt1!))
输出:
Time : 2016-01-14
这在处理date和时间时可能通常不适用,但如果只需要插入破折号(格式保证是相同的),这是更简单的解决scheme
var str = "20160112" str.characters.insert("-", at: str.index(str.startIndex, offsetBy: 6)) str.characters.insert("-", at: str.index(str.startIndex, offsetBy: 4)) print(str) // outputs "2016-01-12"
var str = "20160518" let strCpoy = str str.insert("-", at: strCpoy.index(strCpoy.startIndex, offsetBy: 4)) str.insert("-", at: strCpoy.index(strCpoy.startIndex, offsetBy: 7)) print(str)