简体   繁体   English

NSDateFormatter dateFromString为“ 2015-11-20 13:42:00.000000”返回nil

[英]NSDateFormatter dateFromString returns nil for “2015-11-20 13:42:00.000000”

I know there are many similar questions but I can't figure out my problem. 我知道有很多类似的问题,但我无法弄清楚我的问题。

I want to convert a String like "2015-11-20 13:42:00.000000" to NSDate. 我想将类似"2015-11-20 13:42:00.000000"String转换为NSDate。

My code is like below. 我的代码如下。

let date:String
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ssZ"
if let value = row["date"]?.asString() {
    date = value
    let formattedDate = dateFormatter.dateFromString(date) // formattedDate is nil
}

You need to update your dateFormat with following 您需要使用以下更新dateFormat

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"

As uppercase S represents fraction of second. 由于大写字母S代表秒的分数。

More detail about DateTime Format table is available here 有关DateTime格式表的更多详细信息,请参见此处

Please secure your code by saving ponies ! 请通过保存小马来保护您的代码!

let date = "2015-11-20 13:42:00.000000"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"
if let fornmattedDate = dateFormatter.dateFromString(date) as NSDate {
print ("The formated date is \(fornmattedDate)")
} else {
     print ("\(date) is not a valid date")
} 

Try like this :- 尝试这样:-

    let date = "2015-11-20 13:42:00.000000"
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"
    let fornmattedDate = dateFormatter.dateFromString(date) as NSDate!
    print ("The formated date is \(fornmattedDate)")

Output:- The formated date is 2015-11-20 21:42:00 +0000 输出:-格式化日期为2015-11-20 21:42:00 +0000

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

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