我试着做点什么,然后搜索,但是我什么也没找到。我在一个文件中有一个函数DatePicker。我调用此函数并向其发送绑定的var日期。我只想保留日期并删除其中的时间。我有这个函数:
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
return formatter
}但我是这样使用它的: Text("(date,formatter: dateFormatter)")
如何使用此格式化程序返回绑定值?
谢谢
编辑我的文件:
struct WIDatePicker: View {
@Binding var date: Date
@State private var sheetDate = false
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
return formatter
}
var body: some View {
Button(action: {self.sheetDate.toggle()}) {
VStack {
HStack {
Text("\(date, formatter: dateFormatter)")
Print("Variables : \(dateFormatter.string(from: date))")
Spacer()
if (sheetDate == true) {
Divider()
DatePicker("", selection: $date, displayedComponents: .date)
.labelsHidden()
}
}
}
}}
发布于 2020-04-04 06:40:11
我猜你是在问如何使用格式化程序。像这样使用它:
Text("date \(date, formatter: dateFormatter)")发布于 2020-04-04 09:42:01
也许您可以这样做,以获得不含小时和分钟的字符串日期。
struct WIDatePicker: View {
@State var date: Date
@State private var sheetDate = false
@State var myDateString = ""
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
return formatter
}
var body: some View {
let bindingDate = Binding<Date>(
get: { self.date },
set: {
self.myDateString = self.dateFormatter.string(from: $0)
self.date = $0
})
return Button(action: {
self.sheetDate.toggle()
}) {
VStack {
HStack {
Text("\(self.myDateString)")
Spacer()
if (sheetDate == true) {
Divider()
DatePicker("", selection: bindingDate, displayedComponents: .date).labelsHidden()
}
}
}
}.onAppear(perform: loadData)
}
func loadData() {
myDateString = dateFormatter.string(from: date)
}}
https://stackoverflow.com/questions/61019910
复制相似问题