Search code examples
iosswiftnsdatenstimezone

Convert TimeString yyyy-mm-dd HH:mm:ss to NSDate Time HH:mm AM/PM in swift


I want to convert Time string to NSDate Time into HH:mm: a format. I have a code right now

let defaultStartTime = json!["start_schedule_datetime"] as? String
 let defaultEndTime = json!["end_schedule_datetime"] as? String



                    print(defaultStartTime,defaultEndTime)

                    dispatch_async(dispatch_get_main_queue(), {

                        let dtf = NSDateFormatter()
                        dtf.timeZone = NSTimeZone(name: "UTC")
                        dtf.dateFormat = "HH:mm a"

                        let defaultStartdate : NSDate = dtf.dateFromString(defaultStartTime!)!
                        let defaultEnddate : NSDate = dtf.dateFromString(defaultEndTime!)!

                        print(defaultStartdate,defaultEnddate)

                        self.startTime.date = defaultStartdate
                        self.endTime.date = defaultEnddate
                        self.endTime.reloadInputViews()
                        self.startTime.reloadInputViews()

                        })

Where:-

start_schedule_datetime = 2016-05-27 13:35:00
end_schedule_datetime = 2016-05-27 19:35:00

Here i want time into HH:mm a. But when i am trying to do that i am getting

fatal error: unexpectedly found nil while unwrapping an Optional value

Can any one please help me here. Thank you


Solution

  • Here one of the best solution for everyone. You can easily get what you want from the date. And also you can learn about dateformatter.

    Reference 1: http://nsdateformatter.com/

    EDIT 1

    Reference 2: For Ready made code

    Good luck.