我的日期是一个如下所示的字符串:
Apr 25 2018 12:00AM
我想要做的是将此日期格式转换为yyyy-MM-dd,然后将其转换回字符串,我尝试了以下内容:
let formatter = DateFormatter()
formatter.dateFormat = "M dd yyyy h:mm A"
let SLAIssuedFinalGradingDate = formatter.date(from: tableDic["SLAIssuedFinalGradingDate"] as! String)
formatter.dateFormat = "yyyy-MM-dd"
let SLAIssuedFinalGradingDateString = formatter.string(from: SLAIssuedFinalGradingDate!)
但是SLAIssuedFinalGradingDate
总是返回nil,我做错了什么?
答案 0 :(得分:3)
dateFormat
Apr 25 2018 12:00AM
不正确。您使用的是M dd yyyy h:mm A
,但格式为MMM dd yyyy hh:mma
Use this link to check date format。
代码应该是:
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "MMM dd yyyy hh:mma"
let SLAIssuedFinalGradingDate = formatter.date(from: tableDic["SLAIssuedFinalGradingDate"] as! String)
formatter.dateFormat = "yyyy-MM-dd"
let SLAIssuedFinalGradingDateString = formatter.string(from: SLAIssuedFinalGradingDate!)
答案 1 :(得分:0)
您的dateFormat
字符串不正确。如果dateFormat字符串与提供的字符串不匹配,DateFormatter
将始终返回nil。
"MMM dd yyyy hh:mma"
这就是你所追求的。我建议您查看DateFormatter cheat sheet并熟悉这些符号。