如何在表视图中将日期格式从 1999-05-18 转换为 5 月 18 日 swift
How to convert date formate from 1999-05-18 to 18 may in uitable view swift
我 url 有带名字的 Dob 列表,响应出现在这种情况下“1993-03-28”......沿着名字,我必须将日期显示为 28 3 月 我创建了几个月的数组并开始工作,但它为所有成员打印所有相同的日期我的代码是
var dob = "\(arrdata[indexPath.section].dob)"
print(dob)
var dobSplit = dob.split(separator:"-")
print (dobSplit)
var mont = dobSplit[1]
var dat = dobSplit[2]
print(dat,mont)
var monthArray = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
print(monthArray)
print(monthArray[Int(mont)!-1])
var mo = monthArray[Int(mont)!-1]
var finalDOB = dat + " " + mo
print(finalDOB)
// cell.dateLbl.text = "\(arrdata[indexPath.row+1].dob)"
// instead of that I gave like this
cell.dateLbl.text = finalDOB
对于所有名称,它显示相同的日期
EX:Rohit 3 月 28 日
拉胡尔 3 月 28 日
周日 3 月 28 日
库尔迪普 3 月 28 日
使用DateFormatter
获取所需的日期格式,如
func getFormattedDate(from str: String) -> String? {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
if let date = dateFormatter.date(from: str) {
dateFormatter.dateFormat = "dd MMM"
return dateFormatter.string(from: date)
}
return nil
}
要在 cell
中添加 formattedDate
,请使用 indexPath.row
而不是 indexPath.section
,即
let dob = "\(arrdata[indexPath.row].dob)"
cell.dateLbl.text = getFormattedDate(from: dob)
仍然,如果它在 tableView
的每个 cell
中打印相同的日期,请尝试添加您正在为每个 [=] 使用的 string dates
的 array
14=]。还有 UITableViewDataSource
方法。
你打错了。变化:
var dob = "\(arrdata[indexPath.section].dob)"
至:
var dob = "\(arrdata[indexPath.row].dob)"
除此之外,使用 DateFormatter
将日期字符串从一种格式转换为另一种格式。至少,不要硬编码您自己的月份字符串。它不能很好地定位。如果您不想使用 DateFormatter
.
正确执行此操作,请使用 Calendar shortMonthNames
我 url 有带名字的 Dob 列表,响应出现在这种情况下“1993-03-28”......沿着名字,我必须将日期显示为 28 3 月 我创建了几个月的数组并开始工作,但它为所有成员打印所有相同的日期我的代码是
var dob = "\(arrdata[indexPath.section].dob)"
print(dob)
var dobSplit = dob.split(separator:"-")
print (dobSplit)
var mont = dobSplit[1]
var dat = dobSplit[2]
print(dat,mont)
var monthArray = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
print(monthArray)
print(monthArray[Int(mont)!-1])
var mo = monthArray[Int(mont)!-1]
var finalDOB = dat + " " + mo
print(finalDOB)
// cell.dateLbl.text = "\(arrdata[indexPath.row+1].dob)"
// instead of that I gave like this
cell.dateLbl.text = finalDOB
对于所有名称,它显示相同的日期
EX:Rohit 3 月 28 日
拉胡尔 3 月 28 日
周日 3 月 28 日
库尔迪普 3 月 28 日
使用DateFormatter
获取所需的日期格式,如
func getFormattedDate(from str: String) -> String? {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
if let date = dateFormatter.date(from: str) {
dateFormatter.dateFormat = "dd MMM"
return dateFormatter.string(from: date)
}
return nil
}
要在 cell
中添加 formattedDate
,请使用 indexPath.row
而不是 indexPath.section
,即
let dob = "\(arrdata[indexPath.row].dob)"
cell.dateLbl.text = getFormattedDate(from: dob)
仍然,如果它在 tableView
的每个 cell
中打印相同的日期,请尝试添加您正在为每个 [=] 使用的 string dates
的 array
14=]。还有 UITableViewDataSource
方法。
你打错了。变化:
var dob = "\(arrdata[indexPath.section].dob)"
至:
var dob = "\(arrdata[indexPath.row].dob)"
除此之外,使用 DateFormatter
将日期字符串从一种格式转换为另一种格式。至少,不要硬编码您自己的月份字符串。它不能很好地定位。如果您不想使用 DateFormatter
.
Calendar shortMonthNames