2015-03-11 17 views
5

Tôi cần thay đổi UIDatePicker thành một động cụ thể.Cách thay đổi UIDatePicker thành một thời điểm cụ thể (trong mã)

Bộ chọn ngày của tôi chỉ được đặt ở chế độ thời gian. tôi có thể đặt thời gian với

timePicker.setDate(NSDate(), animated: false) 

nhưng tôi không thể tìm ra cách để thay đổi nó vào một thời gian khác nhau và không thời điểm hiện tại.

Vậy làm cách nào để thay đổi?

Cảm ơn

Trả lời

9

Bạn đã thay đổi thời gian , bạn có thể làm điều đó bằng NSDateComponents và thiết lập ngày sửa đổi để bạn DatePicker

var calendar:NSCalendar = NSCalendar.currentCalendar() 
let components = calendar.components(NSCalendarUnit.HourCalendarUnit | NSCalendarUnit.MinuteCalendarUnit, fromDate: NSDate()) 
components.hour = 5 
components.minute = 50 
datePicker.setDate(calendar.dateFromComponents(components)!, animated: true) 
1

bạn có thể sử dụng nó như thế này

timePicker.setDate(NSDate(timeInterval: 60, sinceDate: NSDate()), animated: false) 

hoặc

timePicker.setDate(NSDate(timeIntervalSinceNow: 60), animated: false) 

nó sẽ thiết lập ngày với sự khác biệt của 1 phút kể từ ngày hiện tại.

+0

Tôi cần phải thay đổi một thời gian hoàn toàn khác. tôi nhận được một thời gian từ máy chủ ở định dạng "HH: mm" và tôi cần hiển thị nó trong bộ chọn ngày – ilan

+0

đặt định dạng datepicker ur theo thời gian của bạn –

3

Bạn có thể tùy chỉnh nó bằng cách định dạng Date and Time của bạn theo cách này:

let dateString = "12-11-2015 10:50:00" 
var dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss" 
let date = dateFormatter.dateFromString(dateString) 

timePicker.setDate(date, animated: false) 
+0

tôi cần đặt UIDatePicker không phải là định dạng văn bản – ilan

+0

Ngày và giờ không phải là câu trả lời để thiết lập ngày và giờ cho UIDatePicker – CodeOverRide

+0

Cập nhật: Divi Tôi thấy những gì bạn cố gắng làm và có thể làm rõ hơn bằng cách thêm nhiều mã hơn vào mã của bạn. Tôi cố gắng hoàn tác bình chọn nhưng không thể. – CodeOverRide

3

Để đặt chọn ngày (chỉ thời gian) thành một thời điểm cụ thể như "09:00", tôi sẽ đặt NSDateComponents và bộ chọn như thế này.

let calendar = NSCalendar.currentCalendar() 
let components = NSDateComponents() 
components.hour = 9 
components.minute = 0 
timePicker.setDate(calendar.dateFromComponents(components)!, animated: true) 
+0

Hữu ích khi đặt UIDatePicker khi sử dụng datePicker.datePickerMode = UIDatePickerMode.CountDownTimer – ObjectiveTC

0

Nếu u không muốn gõ nhiều dòng mã mỗi lần khi bạn muốn ngày hoặc Thời gian từ chuỗi U có thể sao chép dưới chức năng và sử dụng như

let DateVar = DateTimeFrmSrgFnc("31/12/1990",FmtSrg: "dd/MM/yyyy") 

timePicker.setDate(DateVar, animated: false) 

func DateTimeFrmSrgFnc(DateSrgPsgVar: String, FmtSrg FmtSrgPsgVar: String)-> NSDate 
{ 
    // Format: "dd-MM-yyyy HH:mm:ss" 

    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = FmtSrgPsgVar 
    return dateFormatter.dateFromString(DateSrgPsgVar)! 
} 
1

Swift 3:

extension UIDatePicker { 

    func setDate(from string: String, format: String, animated: Bool = true) { 

     let formater = DateFormatter() 

     formater.dateFormat = format 

     let date = formater.date(from: string) ?? Date() 

     setDate(date, animated: animated) 
    } 
} 

Cách sử dụng:

datePicker.setDate(from: "1/1/2000 10:10:00", format: "dd/MM/yyyy HH:mm:ss") 
Các vấn đề liên quan