Ios NSDate from字符串始终为零
我收到的日期是Ios NSDate from字符串始终为零,ios,swift,nsdate,nsdateformatter,Ios,Swift,Nsdate,Nsdateformatter,我收到的日期是字符串,如下所示: “2016-05-20T12:25:00.0” 我想得到它对应的NSDate对象,我正在尝试以下方法: let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "YYYY-MM-DDThh:mm:ss.s" let date = dateFormatter.dateFromString(dateStr) 其中dateStr类似于我首先编写的示例。我从中获取了dateFormat字符串,但
字符串
,如下所示:
“2016-05-20T12:25:00.0”
我想得到它对应的NSDate
对象,我正在尝试以下方法:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-DDThh:mm:ss.s"
let date = dateFormatter.dateFromString(dateStr)
其中dateStr
类似于我首先编写的示例。我从中获取了dateFormat
字符串,但是我得到了nil
日期,有什么问题吗
提前感谢您的日期格式有一些问题。第一个
Y
表示一年中的一周,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"
}
您的日期格式有一些问题。第一个
Y
表示一年中的一周,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"
}
确认您的dateStr格式和setter格式正确无误,或者苹果的NSDateFormatter使用UTC日期格式模式:。您的日期格式错误。您需要为T设置引号,如“YYYY-MM-DD'T'hh:MM:ss.s。请确认您的dateStr格式和setter格式正确或未在Apple中记录,NSDateFormatter使用UTC日期格式模式:。您的日期格式错误。您需要为T设置引号,如“yyy-MM-DD'T'hh:MM:ss.s”