在Swift 3中将字符串转换为DATE类型 [英] Convert string to DATE type in swift 3

查看:546
本文介绍了在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

这篇关于在Swift 3中将字符串转换为DATE类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆