在Swift 3中将字符串转换为DATE类型
问题描述:
我有这样的结构:
struct message {
var id: String = "0"
var text: String = ""
var date: Date!
var status: String = ""
}
我必须从dbase加载此结构,该结构也以String
格式导出,也以date
格式导出.
所以我写这段代码将String
转换为Date
类型:
I have to load this structure from dbase, that it export in String
format also date
.
So I write this code to convert String
to Date
type:
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)!
然后将其加载到结构中:
And I load it in structure:
message(id: elemMessage["id"] as! String, text: elemMessage["text"] as! String, date: dataDate as! Date, status: elemMessage["status"] as! String)
但是我有这个警告:从Date
转换为不相关类型Date
的操作始终失败"
But I have this warning: "Cast from Date
to unrelated type Date
always fails"
因此,如果我运行应用程序,它将失败.
So if I run app it will fails.
如何解决此问题,结构中的date
变量必须为Date
类型.
How Can I fix this, the date
var in structure have to be Date
type.
谢谢.
答
您可以将字符串 Date 转换为 Date/NSDate ,如下代码:-
You can convert String Date into Date/NSDate like below code: -
Swift 3.2 & Swift 4.2
Swift 3.2 & Swift 4.2
日期字符串
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy" //Your date format
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00") //Current time zone
//according to date format your date string
guard let date = dateFormatter.date(from: "01-01-2017") else {
fatalError()
}
print(date) //Convert String to Date
日期为字符串
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