2015-04-07 6 views
9

Я пытаюсь получить только дату от UIDatePicker:Получить только дата (без времени) от UIDatePicker

myDatePicker.datePickerMode = UIDatePickerMode.Date 
var selectedDate=myDatePicker.date 
println(selectedDate) 

Однако это печатает более чем на дату (она печатает 2015-04-09 21:45 : 13 +0000). Как получить только часть даты (без времени)? Я также установил свойство Mode для выбора даты в Date.

ответ

14

Согласно документации Apple, myDatePicker.date должна быть NSDate так что вы можете использовать NSDateFormatter как так

myDatePicker.datePickerMode = UIDatePickerMode.Date 
var dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "dd MMM yyyy" 
var selectedDate = dateFormatter.stringFromDate(myDatePicker.date) 
println(selectedDate) 
5
let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "MM/dd/yy" 
let dateString = dateFormatter.stringFromDate(myDatePicker.date) 

Вы можете распечатать dateString, назначить его на этикетке, что угодно. Формат будет

04/09/15

2

Я просто хочу, чтобы добавить свою лепту в здесь после прихода по аналогичной проблеме. Я бы ответил за оттенки ответа для строкового отображения даты. Не от Xcode 7 и скор 2 года, когда вы используете UIDatePicker установить следующие только просмотреть даты в Picker:

@IBOutlet weak var datePicker: UIDatePicker! 
datePicker.datePickerMode = .Date 
3

Swift 3, это будет печатать строку типа 8 марта 2017

datePicker.datePickerMode = .date 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "MMM dd, yyyy" 
    let selectedDate = dateFormatter.string(from: datePicker.date) 
    print(selectedDate) 
0

Swift версии 4.0 код здесь

@IBAction func saveDateAction(_ sender: Any) { 

     myDatePicker.datePickerMode = UIDatePickerMode.date 
     var dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "dd MMM yyyy" 
     var selectedDate = dateFormatter.string(from: myDatePicker.date) 
     print("selectedDate",selectedDate)  
    } 
Смежные вопросы