如何将SwiftiOS中的字符串转换为日期字符串?

How to convert string to date to string in Swift iOS?

正在学习 swift 并将日期字符串转换为 NSDate 字符串。我正在获取这种格式的日期字符串 "Thu, 22 Oct 2015 07:45:17 +0000"。我需要以 MM-dd-yyyy 格式显示日期。我尝试了以下代码,但是,它 returns "null".

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
let dateObj = dateFormatter.dateFromString(dateString!)
print("Dateobj: \(dateObj)")

任何人都可以帮助哪里出了问题吗?期待帮助。提前致谢。

请参阅 Gary Makin 的回答。您需要更改格式或数据。因为您拥有的数据不适合所选格式。例如,这段代码工作正常:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let dateObj = dateFormatter.dateFromString("10 10 2001")
print("Dateobj: \(dateObj)")

首先,您需要将字符串转换为 NSDate 格式。然后,将 dateFormatter 更改为简单格式并将其转换回字符串。

Swift 3

let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")

let dateObj = dateFormatter.date(from: dateString)

dateFormatter.dateFormat = "MM-dd-yyyy"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")

打印结果为:Dateobj: 10-22-2015

//String to Date Convert

var dateString = "2014-01-12"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let s = dateFormatter.dateFromString(dateString)
println(s)


//CONVERT FROM NSDate to String  

let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd" 
var dateString = dateFormatter.stringFromDate(date)
println(dateString)  

Swift 2岁及以下

let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)

而在 Swift 3 及更高版本中,这将被写为:

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)