【发布时间】:2016-12-11 19:44:50
【问题描述】:
我需要将值'datetime' mysql dbase 分配给变量类型Date()。 该记录将从 httprequest 作为字符串导入。 然后我想从字符串格式设置一个 Date() 。 所以我有这个功能:
func parseDate(dateStr:String, format:String="yyyy-MM-dd HH:mm") -> Date {
let myLocale = Locale(identifier: "it_IT")
let dateFormat = DateFormatter()
dateFormat.timeZone = TimeZone(abbreviation: "CEST")
dateFormat.locale = myLocale
dateFormat.dateStyle = .medium
dateFormat.timeStyle = .medium
dateFormat.dateFormat = format
return dateFmt.date(from: dateStr)
}
我有这个错误:“无法转换'日期类型的返回表达式?'在返回行返回类型“日期”。
我该如何解决。
【问题讨论】:
-
让你的函数返回
Date?,以防它无法解析字符串。 -
如何使这个函数作为可选返回值
-
不要手动设置您的区域设置或 timeZome。如果您的日期字符串中没有时区,只需使用日期格式化程序默认的区域设置和时区(默认为本地时间)
-
在方法声明中不是
-> Date,而是-> Date?。