One Logo Pool Ball
SwiftUI · IOS API REFERENCE

DatePicker

struct · iOS 13.0+ · SDK 27.1

nonisolated struct DatePicker<Label> where Label : View

A control for selecting an absolute date. Use a `DatePicker` when you want to provide a view that allows the user to select a calendar date, and optionally a time. The view binds to a <doc://com.apple.documentation/documentation/Foundation/Date> instance. The following example creates a basic `DatePicker`, which appears on iOS as text representing the date. This example limits the display to only the calendar date, not the time. When the user taps or clicks the text, a calendar view animates in, from which the user can select a date. When the user dismisses the calendar view, the view updates the bound <doc://com.apple.documentation/documentation/Foundation/Date>. @State private var date = Date() var body: some View { DatePicker( "Start Date", selection: $date, displayedComponents: [.date] ) } ![An iOS date picker, consisting of a label that says Start Date, and a label showing the date Apr 1, 1976.](SwiftUI-DatePicker-basic.png) For cases where adding a subtitle to the label is desired, use a view builder that creates multiple `Text` views where the first text represents the title and the second text represents the subtitle: @State private var date = Date() var body: some View { DatePicker(selection: $date) { Text("Start Date") Text("Select the starting date for the event") } } You can limit the `DatePicker` to specific ranges of dates, allowing selections only before or after a certain date, or between two dates. The following example shows a date-and-time picker that only permits selections within the year 2021 (in the `UTC` time zone). @State private var date = Date() let dateRange: ClosedRange<Date> = { let calendar = Calendar.current let startComponents = DateComponents(year: 2021, month: 1, day: 1) let endComponents = DateComponents(year: 2021, month: 12, day: 31, hour: 23, minute: 59, second: 59) return calendar.date(from:startComponents)! ... calendar.date(from:endComponents)! }() var body: some View { DatePicker( "Start Date", selection: $date, in: dateRange, displayedComponents: [.date, .hourAndMinute] ) } ![A SwiftUI standard date picker on iOS, with the label Start Date, and buttons for the time 5:15 PM and the date Jul 31, 2021.](SwiftUI-DatePicker-selectFromRange.png) ### Styling date pickers To use a different style of date picker, use the ``View/datePickerStyle(_:)`` view modifier. The following example shows the graphical date picker style. @State private var date = Date() var body: some View { DatePicker( "Start Date", selection: $date, displayedComponents: [.date] ) .datePickerStyle(.graphical) } ![A SwiftUI date picker using the graphical style, with the label Start Date and wheels for the month, day, and year, showing the selection October 22, 2021.](SwiftUI-DatePicker-graphicalStyle.png)

Members (0)

This type has no directly callable members in this snapshot. See the framework’s skipped declarations for unsupported APIs.

Skipped declarations

5 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

DatePicker.body

This protocol needs associated types that cannot yet cross the bridge.

DatePicker.init(selection:displayedComponents:label:)

callback cannot propagate synchronous failure

DatePicker.init(selection:in:displayedComponents:label:)

callback cannot propagate synchronous failure

DatePicker.init(selection:in:displayedComponents:label:)

callback cannot propagate synchronous failure

DatePicker.init(selection:in:displayedComponents:label:)

callback cannot propagate synchronous failure

All SwiftUI types →