我在显示日期中的日时遇到问题。我有多个格式为“2022-12- 27 T04:00:31.980”的日期。我希望“选取器”能够选择月份中的日之后的日期。当我有相同的日期但不同的时间时,问题就出现了,因为“选取器”显示日的次数与它显示不同时间的次数一样多。
这是我的“挑选者”代码:
Picker(selection: $currentTab, label: Text("Wybierz dzień")) {
let calendar = Calendar.current
ForEach(temperatureCall.chartDataEntries) { item in
let components = calendar.dateComponents([.day, .month, .year], from: item.lastupdated)
let day = components.day!
let month = components.month!
let year = components.year!
Text("\(String(day)).\(String(month)).\(String(year))")
.tag(String(day))
}
}
我希望每一天都是独一无二的,能够选择一天,无论它是多少次重复与不同的时间。
let calendar = Calendar.current
let dates = Set(temperatureCall.chartDataEntries.map { calendar.startOfDay(for: $0.lastupdated) })
Picker(selection: $currentTab, label: Text("Wybierz dzień")) {
ForEach(dates) { item in
let components = calendar.dateComponents([.day, .month, .year], from: item)
let day = components.day!
let month = components.month!
let year = components.year!
Text("\(String(day)).\(String(month)).\(String(year))")
.tag(String(day))
}
}
我做了类似这样的事情,不幸的是,我得到了一个错误:第一个月
1条答案
按热度按时间tcbh2hod1#
我将Map到一天的开始,并使用
Set
获取唯一值这可以作为temperatureCall中的计算属性来完成,然后您可以在
ForEach
中使用此属性