gpt4 book ai didi

swift - 按日期排列字符串日期 ("yyyy-MM-dd HH:mm:ss.SSSSSS") 的数组

转载 作者:行者123 更新时间:2023-11-28 11:37:30 26 4
gpt4 key购买 nike

我有一个名为 TransactionValues 的自定义结构数组,它有一个 dateAdd 属性,字符串如 "2019-02-09 03:57:22.837371"“2019-02-08 04:55:12.833307”“2019-02-09 12:44:22.335671”。我有一种对数组元素进行排序的方法:

func sortByDate(array: [TransactionValues]) -> [TransactionValues] {
print(array)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let sortedArray = array.sorted { dateFormatter.date(from: $0.dateAdd)! < dateFormatter.date(from: $1.dateAdd)! }
print(sortedArray)
return sortedArray
}

但它失败并出现错误:

Fatal error: Unexpectedly found nil while unwrapping an Optional value

$0.dateAdd$1.dateAdd 不为零。

我们将不胜感激。

最佳答案

问题是您在解析日期字符串时使用了错误的日期格式。 "2019-02-09 03:57:22.837371" 的日期格式应为 "yyyy-MM-dd HH:mm:ss.SSSSSS" 而不是 “yyyy-MM-dd HH:mm:ss”。在解析固定日期格式字符串时,不要忘记始终将日期格式化程序语言环境设置为 en_US_POSIX:

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"

请注意,ISO8601 字符串的创建方式无需转换为日期也可以进行排序:

let sortedArray = array.sorted { $0.dateAdd < $1.dateAdd }

关于swift - 按日期排列字符串日期 ("yyyy-MM-dd HH:mm:ss.SSSSSS") 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54663620/

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