如何在tableview中将JSON字符串更改为日期格式

Posted

技术标签:

【中文标题】如何在tableview中将JSON字符串更改为日期格式【英文标题】:How to change JSON string to date format in tableview 【发布时间】:2018-08-20 11:58:24 【问题描述】:

我正在使用 tableView 显示 JSON 数据,我想在 tableView 单元格中将 JSON 字符串转换为日期格式。

我的字符串格式的 JSON 日期:

"createdDate": "2018-08-16 11:34:59"

我想把它转换成日期格式 在cellForRowAt 函数中。

struct JSONInfo: Decodable 
    let createdDate: String

在我的cellForRowAt 函数中:

cell.Date.text = JSONList[indexPath.row].createdDate

let createdDate = JSONlist[indexPath.row].createdDate
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
let date = dateFormatter.date(from: createdDate)
dateFormatter.dateFormat = "dd/MM/yyyy"
let IssuedDate = dateFormatter.string(from:date!)

let lastDate = JSONlist[indexPath.row].dueDate
let dateFormatters = DateFormatter()
dateFormatters.locale = Locale(identifier: "en_US_POSIX")
dateFormatters.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatters.timeZone = TimeZone(secondsFromGMT: 0)
let dates = dateFormatter.date(from: lastDate)
dateFormatter.dateFormat = "dd/MM/yyyy"
let DueDate = dateFormatter.string(from:dates!)

在 lastdate 中出现错误。 我在这里得到错误:

let DueDate = dateFormatter.string(from:dates!)

【问题讨论】:

使用DateFormatter 如何在单元格中使用行函数 你能在我的代码中显示我吗 Date Format in Swift的可能重复 这个错误意味着datesnil。而datesnil,因为lastDate 的格式不是yyyy-MM-dd HH:mm:ss 【参考方案1】:

您要转换成哪种格式。用你想要的格式试试这个

if let dateString = JSONList[indexPath.row].createdDate

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
let date = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateStr = dateFormatter.string(from:date!)

cell.Date.text = dateStr


【讨论】:

【参考方案2】:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" //This formate is input formated .
let formateDate = dateFormatter.date(from:"2018-08-16 11:34:59")! //here will be your json string
dateFormatter.dateFormat = "dd/MM/yyyy" // Output Formated
print ("Print :\(dateFormatter.string(from: formateDate))") // Print 16-08-2018

【讨论】:

我遇到这样的错误 'String' 类型的值没有成员 'dateFormat @user9772943 更新您的确切代码,我会修复它 @user9772943 顺便说一句,我的代码在我的项目中运行,所以你可以尝试一下 :) @user9772943 答案是正确的,可能是你做错了什么。 struct ChallanInfo: Decodable let createdDate: String

以上是关于如何在tableview中将JSON字符串更改为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

如何在json文件中将“”更改为“”[重复]

如何在 Pyspark 中将字符串更改为时间戳?

如何在 sqlalchemy 查询中将日期时间更改为字符串? [复制]

在 Pentaho 数据集成中将字段从 String 更改为 Int

如何在python中将垂直字符串更改为水平字符串?

如何在Mongodb中将字符串数据类型大量更改为int?