gpt4 book ai didi

json - Swift ISO 8601 日期格式

转载 作者:行者123 更新时间:2023-12-05 02:58:30 32 4
gpt4 key购买 nike

我正在对 randomuser.me 进行 api 调用并取回包含(以及其他数据)的 json 文件:

“dob”:{ “日期”:“1993-07-20T09:44:18.674Z”, “年龄”:26

我想在文本标签中将日期字符串显示为“dd-MMM-yyyy”,但不知道如何设置字符串的格式来实现此目的。

我曾尝试使用 ISO8601DateFormatter 将其转换为日期,然后再转换回字符串,但到目前为止还没有成功。

有人能帮忙吗?

func getUserData() {

let config = URLSessionConfiguration.default
config.urlCache = URLCache.shared
let session = URLSession(configuration: config)

let url = URL(string: "https://randomuser.me/api/?page=\(page)&results=20&seed=abc")!
let urlRequest = URLRequest(url: url, cachePolicy: .returnCacheDataElseLoad, timeoutInterval: 15.0)
let task = session.dataTask(with: urlRequest) { data, response, error in

// Check for errors
guard error == nil else {
print ("error: \(error!)")
return
}
// Check that data has been returned
guard let content = data else {
print("No data")
return
}

do {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let fetchedData = try decoder.decode(User.self, from: content)

for entry in fetchedData.results {
self.usersData.append(entry)
}

DispatchQueue.main.async {
self.tableView.reloadData()
}

} catch let err {
print("Err", err)
}
}
// Execute the HTTP request
task.resume()
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "userInfoCell") as! UserInfoCell

let user: Result

if isFiltering {
user = filteredData[indexPath.row]
} else {
user = usersData[indexPath.row]
}

cell.nameLabel.text = "\(user.name.first) \(user.name.last)"
cell.dateOfBirthLabel.text = user.dob.date
cell.genderLabel.text = user.gender.rawValue
cell.thumbnailImage.loadImageFromURL(user.picture.thumbnail)

return cell
}

最佳答案

import Foundation
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
let theDate = dateFormatter.date(from: "1993-07-20T09:44:18.674Z")!
let newDateFormater = DateFormatter()
newDateFormater.dateFormat = "dd-MMM-yyyy"
print(newDateFormater.string(from: theDate))

首先使用正确的日期格式将字符串转换为日期。然后使用您想要的格式将其转换回字符串。

关于json - Swift ISO 8601 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58987380/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com