字符串中的NSDate始终为零

时间:2016-05-26 08:24:57

标签: ios swift nsdate nsdateformatter

我收到的日期为String,如下所示:

  

" 2016-05-20T12:25:00.0"

我想获得相应的NSDate对象,我尝试这样:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-DDThh:mm:ss.s"
let date = dateFormatter.dateFromString(dateStr)

其中dateStr就像我先写的例子。我从this page获取了dateFormat字符串,但我得到nil日期,那里有什么问题?

提前致谢

2 个答案:

答案 0 :(得分:4)

您的日期格式存在一些问题。第一个Y适用于weekOfYear,D适用于一年中的某一天。 hh用于12小时格式,小数秒,您应该使用大写S,您需要转义'T'

你应该这样做:

let dateString = "2016-05-20T12:25:00.0"

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.S"
if let date = dateFormatter.dateFromString(dateString) {
    print(dateFormatter.stringFromDate(date) )  // "2016-05-20T12:25:00.0\n"
}

答案 1 :(得分:0)

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.S"
if let date = dateFormatter.stringFromDate(NSDate()) {
    print(dateFormatter.stringFromDate(date) )  
}