我从这样的api获取日期:
["2019-07-12 12:43:00", "2019-07-09 12:57:35", "2019-07-09 12:04:33", "2019-07-05 14:32:32", "2019-07-04 17:50:23", "2019-07-02 12:12:30", "2019-07-01 18:09:28"]
但是我想要的是我想从日期数组中删除时间以获得这样的日期
我想要我想要的结果
["2019-07-12", "2019-07-09", "2019-07-09", "2019-07-05", "2019-07-04", "2019-07-02", "2019-07-01"]
我之所以想要,是因为我需要在FSCalendar
上显示事件。我怎样才能做到这一点?
答案 0 :(得分:3)
您可以简单地使用 POSTMAN
和 compactMap(_:)
的组合,例如
components(separatedBy:)
答案 1 :(得分:2)
请检查以下代码:
let arr = ["2019-07-12 12:43:00", "2019-07-09 12:57:35", "2019-07-09 12:04:33", "2019-07-05 14:32:32", "2019-07-04 17:50:23", "2019-07-02 12:12:30", "2019-07-01 18:09:28"]
var arrOnlyDates = [String]()
for (_,str) in arr.enumerated(){
let s = str.components(separatedBy: " ")
arrOnlyDates.append(s[0])
}
print(arrOnlyDates)
答案 2 :(得分:2)
您可以像这样简单地获取日期数组:
let dateArray = ["2019-07-12 12:43:00", "2019-07-09 12:57:35", "2019-07-09 12:04:33", "2019-07-05 14:32:32", "2019-07-04 17:50:23", "2019-07-02 12:12:30", "2019-07-01 18:09:28"]
let onlyDatesArray = dateArray.compactMap({ $0.components(separatedBy: " ")[0] })
print("only dates -> \(onlyDatesArray)")
答案 3 :(得分:1)
let dateStrings = ["2019-07-12 12:43:00", "2019-07-09 12:57:35", "2019-07-09 12:04:33", "2019-07-05 14:32:32", "2019-07-04 17:50:23", "2019-07-02 12:12:30", "2019-07-01 18:09:28"]
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dates = dateStrings.compactMap { dateFormatter.date(from: $0) }
dateFormatter.dateFormat = "yyyy-MM-dd"
let formatedDateStrings = dates.compactMap { dateFormatter.string(from: $0) }
答案 4 :(得分:1)
由于日期格式不会改变,只需从每个字符串中删除前10个字符
let dates = ["2019-07-12 12:43:00", "2019-07-09 12:57:35", "2019-07-09 12:04:33", "2019-07-05 14:32:32", "2019-07-04 17:50:23", "2019-07-02 12:12:30", "2019-07-01 18:09:28"]
let datesWithoutTime = dates.map{ String($0.prefix(10)) }