gpt4 book ai didi

ios - 将日期转换为日、日月年格式

转载 作者:行者123 更新时间:2023-11-28 05:43:31 24 4
gpt4 key购买 nike

我正在尝试将日期字符串从 yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 转换为“day, date month year”,类似这样“2018 年 1 月 1 日,星期一”。

我正在使用我的辅助函数将日期字符串从一种格式转换为另一种格式。在下面的函数中,我不确定需要为 to 传递什么参数:

func convertDate(from inputFormat: String, to outputFormat: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = inputFormat
if let dateInLocal = dateFormatter.date(from: self) {
dateFormatter.dateFormat = outputFormat
dateFormatter.amSymbol = "AM"
dateFormatter.pmSymbol = "PM"
return dateFormatter.string(from: dateInLocal)
}
return "NA"
}

像下面这样使用上面的扩展

dateAndName = date.convertDate(from:"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", to: "")

最佳答案

有关日期格式,请参阅文档。

EEEE 给出完整的工作日名称。MMMM 给出了完整的月份名称。dd 给出一个两位数的月份数。yyyy 给出一个四位数的年份。

不要在输入格式中引用Z。日期字符串中的 Z 表示日期字符串的时区。如果您在日期格式中引用 Z,则 Z 在字符串中作为时区指示符基本上被忽略,日期格式化程序将解析日期字符串,就好像它是本地的一样给你错误的结果。

这是您清理后的代码:

func convertDate(from inputFormat: String, to outputFormat: String) -> String? {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = inputFormat
dateFormatter.local = Locale(identifier: "en_US_POSIX")

if let dateInLocal = dateFormatter.date(from: self) {
dateFormatter.dateFormat = outputFormat
dateFormatter.locale = Locale.current
return dateFormatter.string(from: dateInLocal)
}

return nil
}

dateAndName = date.convertDate(from:"yyyy-MM-dd'T'HH:mm:ss.SSSZ", to: "EEEE, dd MMMM yyyy")

注意这个函数应该返回一个可选的字符串。让调用者决定如何处理无效输入。

还要注意用于解析输入字符串的特殊语言环境。

关于ios - 将日期转换为日、日月年格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55717490/

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