【问题标题】:What technique should I use in order to organize this list of dates?我应该使用什么技术来组织这个日期列表?
【发布时间】:2026-02-24 09:20:08
【问题描述】:

我有一个 UNIX 时间戳列表,我使用 DateFormatter 将其转换为日期。我格式化后的数组是这样的:

04-19-2017 04:50

04-19-2017 07:50

04-20-2017 14:31

04-20-2017 16:55

04-20-2017 21:08

04-21-2017 01:25

2017 年 4 月 22 日 05:34

我想这样做是为了一个日期表而不显示同一天两次,例如:日-小时、小时、小时,而不是日-小时、日-小时、日-小时。我应该用字典来做吗?您是否熟悉执行此操作的简单方法?谢谢!

【问题讨论】:

  • 发布 UNIX 时间戳列表
  • 取一个只有日期样式的 DateFormatter,如果新对象具有相同的日期,则将数组对象相互比较,然后取一个字符串并先追加日期,然后每次如果日期相同,则仅追加时间
  • 您是否正确理解您希望将天作为部分标题并将小时作为行?
  • @JonRose 是的...

标签: ios iphone swift xcode dictionary


【解决方案1】:

我认为这是不可能的,因为日期格式会因此而受到干扰,然后您无法将其恢复为正确的日期格式。

但是如果你想要一个字典格式,你可以使用这个代码:

func getDatesToDictionary(dates: [Date]) -> [String: Any] {

        let dateFormatterOne = DateFormatter()
        dateFormatterOne.dateFormat = "MM-dd-YYYY HH:mm"
        let dateFormatterTwo = DateFormatter()
        dateFormatterTwo.dateFormat = "MM-dd-YYYY"

        let fullDate = dateFormatterOne.string(from: dates[0])
        let fullDateTemp = dateFormatterTwo.date(from: fullDate)
        let finalDateString = dateFormatterTwo.string(from: fullDateTemp!)

        var dateDictionary: [String: Any] = [:]
        var dateArray: [Date] = []

        let dateFormatterThree = DateFormatter()
        dateFormatterThree.dateFormat = "HH:mm"

        for eachDate in dates {

            let fullDateHour = dateFormatterOne.string(from: eachDate)
            let finalDateHourString = dateFormatterThree.date(from: fullDateHour)
            dateArray.append(finalDateHourString!)
        }

        dateDictionary = [finalDateString: dateArray]
        return dateDictionary
    }

【讨论】:

    最近更新 更多