How to convert a String to NSdate?

Maamoun Captan

I am trying to convert fajerTime to NSDate. When I compile the project the dateValue is nil. Any idea how to fix this issue?

if prayerCommingFromAdan.id == 0 && prayerCommingFromAdan.ringToneId != 0{
    //   NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification(_:)), name:"NotificationIdentifier", object: nil)

    let fajerTime = "\(prayer0.time[0...1]):\(prayer0.time[3...4])" as String
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM-dd-yyyy"
    dateFormatter.timeZone = NSTimeZone.localTimeZone()

    // convert string into date
    let dateValue = dateFormatter.dateFromString(fajerTime) as NSDate!
    print(dateValue)

    var dateComparisionResult:NSComparisonResult = NSDate().compare(dateValue)

    if dateComparisionResult == NSComparisonResult.OrderedDescending {
        addNotificationAlarm(year, month: month, day: day, hour: prayer0.time[0...1], minutes: prayer0.time[3...4], soundId: prayerCommingFromAdan.ringToneId, notificationBody: "It is al fajr adan")                    
    }
Luke Van In

The problem seems be the format of fajerTime. It looks like fajerTime is a time string, e.g. 12:34, whereas the date formatter is configured to accept string containing a month, day and year, e.g. 24-07-2016.

You need to format fajerTime to include the year, month and day, as well as the time. Also configure the date formatter to accept the full date and time.

Assuming prayer0 is an array, you will also need to combine the elements into a string, using joinWithSeparator.

e.g.

let hours = prayer0.time[0...1].joinWithSeparator("")
let minutes = prayer0.time[3...4].joinWithSeparator("")
let fajerTime = "\(month)-\(day)-\(year) \(hours):\(minutes)"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy hh:mm"
dateFormatter.timeZone = NSTimeZone.localTimeZone()

// convert string into date
let dateValue = dateFormatter.dateFromString(fajerTime) as NSDate!

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related