我正在尝试以以下格式将日期显示到tableview单元格中
1996.July.10 12:08 PM
使用这种模式 yyyy.MMMM.dd hh:mm aaa
我来自api的实际日期格式是这种格式 2019-12-16T05:33:43Z
这是我用于转换的代码
if let dateString: String = articleListVM.articles[indexPath.row].publishedAt {
print(dateString)
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy.MMMM.dd hh:mm aaa"
let date = dateFormatter.date(from: dateString)
print("date: \(String(describing: date))")
}
现在我得到这样的输出
2019-12-16T05:33:43Z
date: nil
我不确定自己做错了什么错误,请检查一下。
您指定的日期格式存在一个小问题。您的日期格式实际上应该是:
yyyy-MM-dd'T'HH:mm:ssZ
因此,将代码更改为:
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
输出:
date: Optional(2019-12-16 05:33:43 +0000)
在评论中编辑来自OP的以下更多信息
为了将一种格式的字符串转换为日期,然后转换为另一种日期格式,您需要两个DateFormatter
s。下面将转换原始字符串日期,然后将日期输出为另一种格式:
let dateString: String = "2019-12-16T05:33:43Z"
print(dateString)
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
if let date = dateFormatter.date(from: dateString)
{
print("date: \(String(describing: date))")
let outputFormatter = DateFormatter()
outputFormatter.locale = Locale(identifier: "en_US_POSIX")
outputFormatter.dateFormat = "yyyy.MMMM.dd hh:mm aaa"
let outputDate = outputFormatter.string(from: date)
print("date: \(String(describing: outputDate))")
}
输出:
2019-12-16T05:33:43Z
date: 2019-12-16 05:33:43 +0000
date: 2019.December.16 05:33 AM
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句