SWIFTUI:仅获取日期

问题描述 投票:1回答:2

我正在尝试做某事,并进行搜索,但是我什么也没发现。我在文件中有一个DatePicker函数。我调用此函数并向其发送一个绑定的可变日期。我只想保留日期并从中删除时间。我有这个功能:

     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()

            }
        }
    }
}

}

swiftui swift5
2个回答
0
投票

我猜您在问如何使用格式化程序。像这样使用它:

Text("date \(date, formatter: dateFormatter)")

0
投票

也许您可以执行类似的操作,以获得不带小时和分钟的字符串日期。

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
            print("----> self.myDateString: \(self.myDateString)")
    })

    return Button(action: {
        self.sheetDate.toggle()
    }) {
        VStack {
            HStack {
                Text("\(date, formatter: dateFormatter)")
                Spacer()
                if (sheetDate == true) {
                    Divider()
                    DatePicker("", selection: bindingDate, displayedComponents: .date).labelsHidden()
                }
            }
        }
    }
}
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.