Ios 使用DateFormatter返回nil的字符串的日期
我有一个类似于Ios 使用DateFormatter返回nil的字符串的日期,ios,swift,date,nsdate,Ios,Swift,Date,Nsdate,我有一个类似于yyyy-MM-dd的字符串,我想用它创建一个Date static func dateFromStringWithBarra(date : String) -> String { print("DATE: \(date)") let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" let date_from_format = dateFormatt
yyyy-MM-dd
的字符串,我想用它创建一个Date
static func dateFromStringWithBarra(date : String) -> String {
print("DATE: \(date)")
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date_from_format = dateFormatter.date(from: date)
print("date_from_format: \(date_from_format)")
dateFormatter.dateFormat = "dd/MM/yyyy"
print("date_from_format: \(date_from_format)")
return dateFormatter.string(from: date_from_format!) // <- nil
}
static func dateFromStringWithBarra(日期:String)->String{
打印(“日期:\(日期)”)
让dateFormatter=dateFormatter()
dateFormatter.dateFormat=“yyyy-MM-dd”
让date\u from\u format=dateFormatter.date(from:date)
打印(“来自格式的日期:\(来自格式的日期)”)
dateFormatter.dateFormat=“dd/MM/yyyy”
打印(“来自格式的日期:\(来自格式的日期)”)
return dateFormatter.string(from:date\u from\u format!)//关于该代码的一些内容:
1) 不知道为什么使用两种不同的日期格式
2) 如果可能,您应该避免使用强制展开,在这种情况下,防护装置可能是一个不错的选择
这意味着代码应该更像这样:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
guard let date_from_format = dateFormatter.date(from: date) else {
return ""
}
return dateFormatter.string(from: date_from_format)
我也遇到了同样的问题,我的问题是通过向DateFormatter添加区域设置解决的:
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "es_MX_POSIX")
希望能有所帮助。在Swift操场上对我来说很好。(Xcode 10,Swift 4.2)我在游乐场也很好用。我能做什么?你确定你的日期
字符串中没有空格吗?不,这是正确的。但我用日期格式化程序解决。islenent=true
。我不知道为什么,但它是有效的。两种格式的要点是将日期字符串转换为不同格式的新日期字符串。你的代码是st返回相同的字符串,因此没有意义。而且您的答案无法解释问题。