gpt4 book ai didi

ios - 无法快速更改我的字符串日期的日期格式

转载 作者:行者123 更新时间:2023-11-28 10:40:48 24 4
gpt4 key购买 nike

我有字符串,因为它包含日期(“2018-05-10T13:00:00”)。但是,我希望日期格式为“MMM dd,yyyy”。所以,我编写了如下代码。

func convertDateStringToDate(longDate: String) -> String{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy"
let date = dateFormatter.date(from: longDate)

if date != nil {

let formatter = DateFormatter()
formatter.dateStyle = .short
let dateShort = formatter.string(from: date!)

return dateShort

} else {

return longDate
}
}

然后像下面这样调用

let dateFormattedString = convertDateStringToDate(longDate: (valuesDict.value(forKey: "dateValue") as? String)!)

但是,它再次打印原始值,而不是更新后的格式。

"2018-05-10T13:00:00"

有什么建议吗?

最佳答案

let date = dateFormatter.date(from: longDate) 将返回 nil,因为 dateFormatter 期望日期字符串在 MMM dd 中, yyyy 格式。因此,当您使用 if date != nil 检查时,它会进入 else 部分。

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

像这样的东西就可以了

func convertDateStringToDate(longDate: String) -> String{
let longDateFormatter = DateFormatter()
longDateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
if let date = longDateFormatter.date(from: longDate) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy"
return dateFormatter.string(from: date)
} else {
return longDate
}
}

关于ios - 无法快速更改我的字符串日期的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523781/

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