繁体   English   中英

如何将字符串转换为NSdate?

[英]How to convert a String to NSdate?

我正在尝试将fajerTime转换为NSDate 当我编译项目时, dateValuenil 任何想法如何解决此问题?

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")                    
    }

问题似乎是fajerTime的格式。 看起来fajerTime是一个时间字符串,例如12:34 ,而日期格式器配置为接受包含月,日和年的字符串,例如24-07-2016

您需要格式化fajerTime以包括年,月,日以及时间。 还配置日期格式器以接受完整的日期和时间。

假设prayer0是一个数组,则还需要使用joinWithSeparator将元素组合成字符串。

例如

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!

请遵循示例( Swift 3 ):

let dateStr = "2016-01-15 20:10:01 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
let myDate = dateFormatter.date(from: dateStr)

记住:

  • 日期格式,例如“ yyyy-MM-dd HH:mm:ss Z”必须与日期字符串模式匹配

  • 在您的情况下,日期字符串仅包含时间,而日期格式器仅包含日期

  • 使用dateFormatter.date()时,无需将其强制转换为Date,因为它返回Date: 在此处输入图片说明

有关日期格式的有用网站:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM