Ios 如何在swift中将sting转换为日期,然后再转换为日期?
我从一个JSON请求中收到一个时间戳,我想将它格式化为一种用户友好的格式。输入和所需输出均为“字符串”类型 输入时间戳的格式为:Ios 如何在swift中将sting转换为日期,然后再转换为日期?,ios,swift,Ios,Swift,我从一个JSON请求中收到一个时间戳,我想将它格式化为一种用户友好的格式。输入和所需输出均为“字符串”类型 输入时间戳的格式为:2020-03-07T12:18:26.347Z 使用以下代码,我尝试将其转换为所需的格式。但是它只输出Date()的值,这表明formatter.Date(from:Date)的输出是nil 我错过了什么 func convertDate(date: String) -> String { let formatter = DateFormatter()
2020-03-07T12:18:26.347Z
使用以下代码,我尝试将其转换为所需的格式。但是它只输出Date()
的值,这表明formatter.Date(from:Date)
的输出是nil
我错过了什么
func convertDate(date: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = "d-M-y, HH:mm"
let convertedDate = formatter.date(from: date) ?? Date()
return formatter.string(from: convertedDate)
}
日期格式与输入字符串的格式不匹配。你想要的是:
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
经过几个小时的努力,这个,再加上找到的日期格式信息,我找到了答案。我之前没有向dateformatter描述输入字符串的外观
func convertDate(date: String) -> String {
let dateFormatter = DateFormatter()
// This is important - we set our input date format to match our input string
// if the format doesn't match you'll get nil from your string, so be careful
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
//`date(from:)` returns an optional so make sure you unwrap when using.
let dateFromString: Date? = dateFormatter.date(from: date)
let formatter = DateFormatter()
formatter.dateFormat = "dd-MM-yyyy, HH:mm"
//Using the dateFromString variable from before.
let stringDate: String = formatter.string(from: dateFromString!)
return stringDate
}