首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFTUI :仅获取日期

SWIFTUI :仅获取日期
EN

Stack Overflow用户
提问于 2020-04-04 04:28:43
回答 2查看 848关注 0票数 1

我试着做点什么,然后搜索,但是我什么也没找到。我在一个文件中有一个函数DatePicker。我调用此函数并向其发送绑定的var日期。我只想保留日期并删除其中的时间。我有这个函数:

代码语言:javascript
复制
     var dateFormatter: DateFormatter {
     let formatter = DateFormatter()
     formatter.dateStyle = .medium
     formatter.timeStyle = .none
     return formatter
 }

但我是这样使用它的: Text("(date,formatter: dateFormatter)")

如何使用此格式化程序返回绑定值?

谢谢

编辑我的文件:

代码语言:javascript
复制
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()

            }
        }
    }
}

}

EN

回答 2

Stack Overflow用户

发布于 2020-04-04 06:40:11

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

代码语言:javascript
复制
Text("date \(date, formatter: dateFormatter)")
票数 0
EN

Stack Overflow用户

发布于 2020-04-04 09:42:01

也许您可以这样做,以获得不含小时和分钟的字符串日期。

代码语言:javascript
复制
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)
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61019910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档