如何在Swift中将String to Date转换为String?

时间:2019-03-24 05:16:45

标签: ios swift xcode nsdateformatter

我有这种类型的字符串“ 2019-03-22”,并希望在Swift中将其转换为该字符串“ 2019年3月22日”。

它看起来很简单,我尝试了几种不同的方法。但是我还没有弄清楚。

我拥有的最好的代码是:

Cannot convert value of type 'String' to expected argument type 'Date'

但是我收到此错误km.as.one$surv <- 1-km.as.one$surv km.as.one$lower <- 1-km.as.one$lower km.as.one$upper <- 1-km.as.one$upper survplot(km.as.one, fun=function(y) y, conf = "bars")

我该如何解决?

3 个答案:

答案 0 :(得分:2)

您正在尝试转换 string(from: string ,这是不可能的。

您首先必须将字符串转换为格式为yyyy-MM-dd日期,然后更改格式并将其转换回字符串。

let dateString = "2019-03-22"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
let date = dateFormatter.date(from: dateString)!
dateFormatter.dateFormat = "MMMM dd, yyyy"
let newDate = dateFormatter.string(from:date)
print(newDate)

答案 1 :(得分:1)

您需要阅读提供的日期字符串。

dateFormatter.dateFormat = "yyyy-MM-dd"

现在读取日期字符串。

let aDate = dateFormatter.date(from: originalDate)

然后您提供新格式

dateFormatter.dateFormat = "MMMM dd, yyyy"
let newDateString = dateFormat.string(from: aDate) 

现在的输出是:

  

2019年3月22日

完整代码:

let originalDate = "2019-03-22"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
let aDate = dateFormatter.date(from: originalDate)!
dateFormatter.dateFormat = "MMMM dd, yyyy"
let newDate = dateFormatter.string(from: aDate)
print(newDate)

答案 2 :(得分:0)

我已经在我的项目中使用以下方法:

func dateFormat(_ originalDate: String) -> String{
     let dateFormatter = DateFormatter()
     dateFormatter.dateFormat = "yyyy-MM-dd"
     dateFormatter.locale = Locale(identifier: "en_US_POSIX")
     let date = dateFormatter.date(from: originalDate)
     dateFormatter.dateFormat = "MMMM dd, yyyy"
     let valueDate = dateFormatter.string(from: date!)
     return valueDate
}

您可以利用这种方法:

dateFormat("2019-03-22") // March 22, 2019