在swift中将string转换为DATEtypes3
我有这样的结构:
struct message { var id: String = "0" var text: String = "" var date: Date! var status: String = "" }
我必须从dbase加载这个结构,它以string格式导出也'date'。 所以我写这个代码来将String转换为Datetypes:
let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC") as TimeZone! let dataDate = dateFormatter.date(from: elemMessage["date"] as! String)!
我加载它的结构:
message(id: elemMessage["id"] as! String, text: elemMessage["text"] as! String, date: dataDate as! Date, status: elemMessage["status"] as! String)
但我有这样的警告:“从'date'转换为不相关的types'date'总是失败”
所以如果我运行的应用程序将失败。
我如何解决这个问题,结构中的'date'var必须是Datetypes。
谢谢。
您可以将stringdate转换为date/ NSDate像下面的代码: –
Swift 3.2和Swift 4.0
string到date
let dateFormatter = DateFormatter() dateFormatter.dateFormat = "dd-mm-yyyy" //Your date format dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00") //Current time zone let date = dateFormatter.date(from: "01-01-2017") //according to date format your date string print(date ?? "") //Convert String to Date
date到string
dateFormatter.dateFormat = "MMM d, yyyy" //Your New Date format as per requirement change it own let newDate = dateFormatter.string(from: date!) //pass Date here print(newDate) //New formatted Date string
输出: –
2017-01-11 00:07:00 +0000 Jan 11, 2017
func GetDateFromString(DateStr: String)-> Date { let calendar = NSCalendar(identifier: NSCalendar.Identifier.gregorian) let DateArray = DateStr.components(separatedBy: "/") let components = NSDateComponents() components.year = Int(DateArray[2])! components.month = Int(DateArray[1])! components.day = Int(DateArray[0])! components.timeZone = TimeZone(abbreviation: "GMT+0:00") let date = calendar?.date(from: components as DateComponents) return date! }
//input:“2017/02/23”
//输出:2017-02-23 18:30:00 +0000